最近看到了远程连接服务器的相关命令,先来总结下SSH的相关内容
SSH的连接过程
第一步:服务器第一次开启SSH服务,<br>则会自动建立/etc/ssh/ssh_host*公钥文件,以及私钥文件
<br>第二步:客户端主动链接SSH服务器
<br>第三步:服务器将自己的公钥文件传送给客户端(明文)
<br>第四步:若客户端第一次链接该服务器,
若已经记录则会比较差异。不同则拒绝。
若接受此公钥,则计算此次链接自己的公、私钥
第五步:客户端将自己的公钥发给服务器
第六步:开始双向加解密
开启SSH服务
` /etc/init.d/ssh restart`
SSH命令
`ssh [ -f ] [-o ] [ -p ] 帐号@IP [命令]`
|参数|意义|
|:||
|-f|不登录,直接在远程服务器执行“后面的命令”|
|-o|额外的参数|
|-p|使用其他端口,默认22|
示例:
A:登录远程主机192.168.0.115的帐号msdoge
`1、 ssh msdoge@192.168.0.155
2、 输入密码`
B:在不登录的情况下关闭192.168.0.115
`1、 ssh -f msdoge@192.168.0.115 shutdown -h now
2、 输入密码`
服务器公钥记录文件
当ssh连接到第四步的时候客户端对比本地~/.ssh/known_hosts文件中服务器公钥与本次连接服务器公钥的数据,若有差异则会拒绝连接,以防连接到伪装的服务器。
若服务器重新安装了SSH,其在第一步中/etc/ssh/ssh_host*公钥文件重新计算,则可能会出现公钥和以前不同,但IP相同的情况,此时客户端则会避免连上伪装的服务器而拒绝连接。
此时客户端可以vim 到~/.ssh/knoen_hosts删除掉对应的服务器公钥数据即可
制作不用密码可立即登录的ssh用户
第一步:使用ssh-keygen命令制作公钥私钥文件
ssh-keygen [-t rsa|dsa]
-t:选择密码算法,默认rsa
第二步:将生成的公钥文件上传到服务器
scp ~/.ssh/id_rsa.pub msdoge@192.168.0.115:~
第三步:在服务器上配置
#登录远程主机,并输入密码
ssh msdoge@192.168.0.115
#根据配置文件/etc/ssh/sshd_config中
#AuthorizedKeysFile的设定
#将公钥文件放在~/.ssh/authorized_keys
#若服务器第一次使用可能没有这个文件夹,需自建
#权限必须是700!
mkdir ~/.ssh
chmod 700 ~/.ssh
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
#authorized_keys权限必须644!
chmod 644 ~/.ssh/authorized_keys