通过学习多个教程,实现了SSH免密登录,总结一下。
Ssh:
Secure Shell(SSH) 是由 IETF(The Internet Engineering Task Force) 制定的建立在应用层基础上的安全网络协议。专为远程登录会话(甚至可以用Windows远程登录Linux服务器进行文件互传)和其他网络服务提供安全性的协议,可有效弥补网络中的漏洞。通过SSH,可以把所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。目前已经成为Linux系统的标准配置。
分布式结点众多,不能每次访问其他结点都要输入密码,所以配置ssh免密登录。
Linux中~/.ssh文件中主要包括:
authorized_keys:存放远程免密登录的公钥,主要通过这个文件记录多台机器的公钥
id_rsa : 生成的私钥文件
id_rsa.pub : 生成的公钥文件
know_hosts : 已知的主机公钥清单
Linux配置ssh免密登录:
- 删除已有的 ssh 配置,使用命令 rm -r ~/.ssh 进行删除 ;
- 生成新的 ssh-key ,使用命令 ssh-keygen -t rsa ;
- 为本机进行公钥的注册:cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
- 1) .ssh目录的权限必须是700, 2) .ssh/authorized_keys文件权限必须是600
- 公钥登录
- 有两种登录方式,一个是密码登录,一个是公钥登录,这里主要介绍公钥登录
- 公钥登录是指用户将自己的公钥存储在远程主机,用户进行请求登录的时候,远程主机发送随机字符串,用户用自己的私钥加密后,再发回来。远程主机用事先储存的公钥进行解密,如果成功,就证明用户是可信的,直接允许登录shell,不再要求密码。
- 为了验证成功配置免密登录,使用另一台Linux,IP为192.168.164.131
-
将本机(192.168.164.130)公钥发送到另一台主机(192.168.164.131),输入密码,将本机公钥成功加入另一台主机。
-
使用ssh 192.168.164.131命令,可以看到下图,不需要密码成功登录,使用exit登出后是原来的主机。