Linux SSH免输入密码登录

场景

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,换成其他的客户端也是同样的原理。生成密钥对进行认证登录的。