场景
linux主机A ssh登录到 linux 主机B ,免输入主机B的密码,直接登录到主机B上。
原理
利用ssh 的 rsa 认证登录。
实现
确认ssh服务开始rsa认证
确认主机B的ssh服务的rsa认证配置(/etc/ssh/sshd_config)是开启的。
RSAAuthentication yes
PubkeyAuthentication yes
主机A生成rsa密钥对
[root@hostA ~]# ssh-keygen -t rsa -P ”
-P表示密码,-P ” 就表示空密码,也可以不用-P参数,这样就要三车回车,用-P就一次回车。
该命令将在/root/.ssh目录下面产生密钥对id_rsa(私钥)和id_rsa.pub(公钥)。
复制主机A的id_rsa.pub(公钥)至主机B上
[root@HostA ~]# scp /root/.ssh/id_rsa.pub root@192.168.1.101:/root/.ssh/hosta_id_rsa.pub
root@192.168.1.101’s password:
然后登录主机B,确认/root/.ssh目录下是否已经存在文件ssh rsa 认证文件 authorized_keys,存在则:
[root@HostB ~]#cat hosta_id_rsa.pub >> $HOME/.ssh/authorized_keys
将主机A的公钥添加至认证文件中。
不存在authorized_keys 文件 则:
[root@HostB ~]#mv hosta_id_rsa.pub $HOME/.ssh/authorized_keys
[root@HostB ~]#chmod 600 $HOME/.ssh/authorized_keys
把主机A的公钥设置为认证文件,具权限改为600(必须600)
注:当前示列中主机B的用户为root用户,其他用户则对应相应用户的目录。
免密码登录是通用rsa密钥对认证,示例中为linux主机A,换成其他的客户端也是同样的原理。生成密钥对进行认证登录的。