linux中ssh怎么开启(LinuxSSH配置及.config应用SSH常用命令)
linux中ssh怎么开启(LinuxSSH配置及.config应用SSH常用命令)/etc/ssh/ssh_config 客户端配置文件OpenSSH: ssh协议的开源实现,Linux默认安装。两个密钥的特性:公钥加密后的密文,只能通过对应的私钥进行解密。而通过公钥推理出私钥的可能性微乎其微。1.Client端用户向server发出请求 2.远程Server收到Client端用户TopGun的登录请求,Server把自己的公钥发给用户。 3.Client使用这个公钥,将密码进行加密。 4.Client将加密的密码发送给Server端。 5.远程Server用自己的私钥,解密登录密码,然后验证其合法性。 6.若验证结果,给Client相应的响应。 默认端口号:22基于tcp协议
SSH为Secure Shell的缩写,SSH 为建立在应用层基础上的安全协议。SSH 是目前较可靠,专为 远程登录 会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH客户端适用于多种平台。几乎所有UNIX平台—包括 HP-UX、Linux、AIX、Solaris、Digital、UNIX、Irix以及其他平台,都可运行SSH。
SSH加密的方式主要有两种:
- 对称加密(也称为秘钥加密), (基于口令的安全验证)
- 非对称加密(也称公钥加密), (基于密匙的安全验证)
i.对称加密,指加密解密使用同一套秘钥。
1.客户端发起ssh请求,服务器会把自己的公钥发送给用户 2.用户会根据服务器发来的公钥对密码进行加密 3.加密后的信息回传给服务器,服务器用自己的私钥解密, 如果密码正确,则用户登录成功.
ii.非对称加密有两个密钥:“公钥”和“私钥”。
两个密钥的特性:公钥加密后的密文,只能通过对应的私钥进行解密。而通过公钥推理出私钥的可能性微乎其微。
1.Client端用户向server发出请求 2.远程Server收到Client端用户TopGun的登录请求,Server把自己的公钥发给用户。 3.Client使用这个公钥,将密码进行加密。 4.Client将加密的密码发送给Server端。 5.远程Server用自己的私钥,解密登录密码,然后验证其合法性。 6.若验证结果,给Client相应的响应。
默认端口号:22
基于tcp协议
OpenSSH: ssh协议的开源实现,Linux默认安装。
/etc/ssh/ssh_config 客户端配置文件
/etc/ssh/sshd_config 服务端配置文件
----------------------------------------------
openssh详解
openssh-server安装文件如下:
/etc/pam.d/ssh-keycat
/etc/pam.d/sshd
/etc/rc.d/init.d/sshd
/etc/ssh/sshd_config
/etc/sysconfig/sshd
/usr/libexec/openssh/sftp-server
/usr/libexec/openssh/ssh-keycat
/usr/sbin/.sshd.hmac
/usr/sbin/sshd
openssh-clients安装文件如下:
/etc/ssh/ssh_config
/usr/bin/.ssh.hmac
/usr/bin/scp
/usr/bin/sftp
/usr/bin/slogin
/usr/bin/ssh
/usr/bin/ssh-add
/usr/bin/ssh-agent
/usr/bin/ssh-copy-id
/usr/bin/ssh-keyscan
/usr/libexec/openssh/ssh-pkcs11-helper
openssh-5.3p1-123.el6_9.x86_64安装文件如下:
/etc/ssh
/etc/ssh/moduli
/usr/bin/ssh-keygen
/usr/libexec/openssh
/usr/libexec/openssh/ssh-keysign
常用命令:
ssh ,ssh-add ,ssh-agent ,ssh-copy-id ,ssh-keygen ,ssh-keyscan,scp,sftp
ssh命令是openssh套件中的客户端连接工具,可以给予ssh加密协议实现安全的远程登录服务器。
ssh(选项)(参数)
选项
-1:强制使用ssh协议版本1;
-2:强制使用ssh协议版本2;
-4:强制使用IPv4地址;
-6:强制使用IPv6地址;
-A:开启认证代理连接转发功能;
-a:关闭认证代理连接转发功能;
-b:使用本机指定地址作为对应连接的源ip地址;
-C:请求压缩所有数据;
-F:指定ssh指令的配置文件;
-f:后台执行ssh指令;
-g:允许远程主机连接主机的转发端口;
-i:指定身份文件;
-l:指定连接远程服务器登录用户名;
-N:不执行远程指令;
-o:指定配置选项;
-p:指定远程服务器上的端口;
-q:静默模式;
-X:开启X11转发功能;
-x:关闭X11转发功能;
-y:开启信任X11转发功能。
参数
远程主机:指定要连接的远程ssh服务器;
指令:要在远程ssh服务器上执行的指令。
ssh-add命令是把专用密钥添加到ssh-agent的高速缓存中。该命令位置在/usr/bin/ssh-add。
语法
ssh-add [-cDdLlXx] [-t life] [file ...]
ssh-add -s pkcs11
ssh-add -e pkcs11
选项
-D:删除ssh-agent中的所有密钥.
-d:从ssh-agent中的删除密钥
-e pkcs11:删除PKCS#11共享库pkcs1提供的钥匙。
-s pkcs11:添加PKCS#11共享库pkcs1提供的钥匙。
-L:显示ssh-agent中的公钥
-l:显示ssh-agent中的密钥
-t life:对加载的密钥设置超时时间,超时ssh-agent将自动卸载密钥
-X:对ssh-agent进行解锁
-x:对ssh-agent进行加锁
实例
1、把专用密钥添加到 ssh-agent 的高速缓存中:
ssh-add ~/.ssh/id_dsa
2、从ssh-agent中删除密钥:
ssh-add -d ~/.ssh/id_xxx.pub
3、查看ssh-agent中的密钥:
ssh-add -l
ssh-agent命令是一种控制用来保存公钥身份验证所使用的私钥的程序。ssh-agent在X会话或登录会话之初启动,所有其他窗口或程序则以客户端程序的身份启动并加入到ssh-agent程序中。通过使用环境变量,可定位代理并在登录到其他使用ssh机器上时使用代理自动进行身份验证。
其实ssh-agent就是一个密钥管理器,运行ssh-agent以后,使用ssh-add将私钥交给ssh-agent保管,其他程序需要身份验证的时候可以将验证申请交给ssh-agent来完成整个认证过程。
-a bind_address:bind the agent to the UNIX-domain socket bind_address.
-c:生成C-shell风格的命令输出。
-d:调试模式。
-k:把ssh-agent进程杀掉。
-s:生成Bourne shell 风格的命令输出。
-t life:设置默认值添加到代理人的身份最大寿命。
ssh-copy-id命令可以把本地主机的公钥复制到远程主机的authorized_keys文件上,ssh-copy-id命令也会给远程主机的用户主目录(home)和~/.ssh 和~/.ssh/authorized_keys设置合适的权限。
ssh-copy-id [-i [identity_file]] [user@]machine
选项
-i:指定公钥文件
实例
1、把本地的ssh公钥文件安装到远程主机对应的账户下:
ssh-copy-id user@server
ssh-copy-id -i ~/.ssh/id_rsa.pub user@server
ssh-keygen命令用于为“ssh”生成、管理和转换认证密钥,它支持RSA和DSA两种认证密钥。
ssh-keygen(选项)
选项
-b:指定密钥长度;
-e:读取openssh的私钥或者公钥文件;
-C:添加注释;
-f:指定用来保存密钥的文件名;
-i:读取未加密的ssh-v2兼容的私钥/公钥文件,然后在标准输出设备上显示openssh兼容的私钥/公钥;
-l:显示公钥文件的指纹数据;
-N:提供一个新密语;
-P:提供(旧)密语;
-q:静默模式;
-t:指定要创建的密钥类型。
ssh-keyscan命令是一个收集大量主机公钥的使用工具。
ssh-keyscan(选项)(参数)
选项
-4:强制使用IPv4地址;
-6:强制使用IPv6地址;
-f:从指定文件中读取“地址列表/名字列表”;
-p:指定连接远程主机的端口;
-T:指定连接尝试的超时时间;
-t:指定要创建的密钥类型;
-v:信息模式,打印调试信息。
参数
主机列表:指定要收集公钥的主机列表。
scp是 secure copy的缩写 scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。linux的scp命令可以在linux服务器之间复制文件和目录。
scp在夸机器复制的时候为了提高数据的安全性,使用了ssh连接和加密方式,如果机器之间配置了ssh免密码登录,那在使用scp的时候密码都不用输入。
当你服务器硬盘变为只读 read only system时,用scp可以帮你把文件移出来。
另外,scp还非常不占资源,不会提高多少系统负荷,在这一点上,rsync就远远不及它了。虽然 rsync比scp会快一点,
但当小文件众多的情况下,rsync会导致硬盘I/O非常高,而scp基本不影响系统正常使用。
scp [参数] [原路径] [目标路径]
scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
[-l limit] [-o ssh_option] [-P port] [-S program]
[[user@]host1:]file1 [...] [[user@]host2:]file2
-B: 使用批处理模式(传输过程中不询问传输口令或短语)
-C: 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
-p:保留原文件的修改时间,访问时间和访问权限。
-q: 不显示传输进度条。
-r: 递归复制整个目录。
-v:详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。
-c cipher: 以cipher将数据传输进行加密,这个选项将直接传递给ssh。
-F ssh_config: 指定一个替代的ssh配置文件,此参数直接传递给ssh。
-i identity_file: 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
-l limit: 限定用户所能使用的带宽,以Kbit/s为单位。
-o ssh_option: 如果习惯于使用ssh_config(5)中的参数传递方式,
-P port:注意是大写的P port是指定数据传输用到的端口号
-S program: 指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。
sftp命令是一款交互式的文件传输程序,命令的运行和使用方式与ftp命令相似,但是,sftp命令对传输的所有信息使用ssh加密,它还支持公钥认证和压缩等功能。
sftp(选项)(参数)
选项
-B:指定传输文件时缓冲区的大小;
-l:使用ssh协议版本1;
-b:指定批处理文件;
-C:使用压缩;
-o:指定ssh选项;
-F:指定ssh配置文件;
-R:指定一次可以容忍多少请求数;
-v:升高日志等级。
ssh登录方式及设置:
密码登录:
ssh user@192.168.x.x -p 10022
输入密码......
密钥登录:
1.单密钥登录
在server上:
ssh-keygen -b 4096 -C "注释",生成id_rsa,id_rsa.pub。
mv id_rsa.pub authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
将id_rsa保存在本地,并在ssh软件设置,即可免密码连接。
2.多密钥登录
ssh-agent bash 或 ssh-agent $SHELL 开启一个ssh子shell
ssh-add ~/.ssh/id_dsa 将密钥加入缓存
ssh user@192.168.x.x -p 10022 不要密码即可登录。
.ssh/config应用:
将公钥保存在server,如上。
在client上:
在用户home目录.ssh目录下创建config文件
chmod 700 ~/.ssh
chmod 600 .ssh/config
在config文件中加入:
Host server0
Hostname 192.168.1.70
Port 22
User matrix
IdentityFile ~/.ssh/node0_rsa
ssh server0 =ssh matrix@192.168.1.70 -p 22