以系统从node1(192.168.128.191)免密登录node2(192.168.128.184)为例,首先user登录node1。
注:在node1上使用ssh 192.168.128.184命令,默认是用当前账号登录,即如果以user登录node1,则实际命令为ssh user@192.168.128.184,如果为root,则则实际命令为ssh root@192.168.128.184。
1.生成私钥
使用 ssh-keygen -t rsa 命令,一路回车即可,默认会在/home/user/.ssh目录下生成rsa算法的密钥,其中id_rsa为自己的私钥,id_rsa.pub为准备给node2的公钥,node2使用公钥加密,node1使用私钥解密,则信息可以加密传输。
常用参数可以指定密钥长度,也可以指定口令。如果指定口令则每次登陆时不需要输入密码但需要输入口令,虽然提高了安全性但是失去了免密登录的原意。
打开id_rsa.pub可以查看公钥内容
明文部分可以看到账号和主机名
2.传输公钥
使用 ssh-copy-id user@192.168.128.184,输入密码后则会将公钥传输给node2,密钥保存在node2的/home/user/.ssh的authorized_keys文件中,查看内容一致
authorized_keys权限必须为600,尽量使用命令避免错误。
此时从node1 在user用户下运行 ssh 192.168.128.184则可以免密登录node2了,或者其他用户下运行ssh user@192.168.128.184
3.取消免密登录
将node2中authorized_keys对应的公钥删除即可