ssh免密钥登陆
描述:主机a免密钥登陆主机b,以a主机root用户免密钥登陆b主机root用户为例,其他用户同理。
1.在a主机上创建公钥和密钥
1 ssh-keygen
一路回车
查看生成的密钥对:
1 # ll /root/.ssh/ 2 total 16 3 -rw-------. 1 root root 393 May 24 15:30 authorized_keys 4 -rw-------. 1 root root 1679 May 24 15:10 id_rsa #私钥 5 -rw-r--r--. 1 root root 393 May 24 15:10 id_rsa.pub #公钥 6 -rw-r--r--. 1 root root 396 May 24 17:21 known_hosts
2.把公钥复制到远程主机上
2.1方法1:
1 # ssh-copy-id -i /root/.ssh/id_rsa.pub root@b主机ip
ssh-copy-id 把密钥追加到远程主机的 .ssh/authorized_key 上,但是这种方法需要输入b主机root密码。
2.2方法2:不需要输入b主机用户密码
查看a主机公钥内容:
1 # cat id_rsa.pub 2 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+Mte708BSEoyFdu1lShkj00FRVFmQwf9H++1KtbAfxuL09LlUPIN3W/GfAK7I3aQk19n5tfYZGVZc1mABuQGFjOq0nBFuWLpCcWU/8X2d496MF0gsxNcXxa5+YXqjulIJdGkIvDKuQJalnsbXP1M3rKbKptxmUyrQxyC7pVsXk6ccko1fZRMBLR1Vf7A8OsUfh/NWF16YtZU14SqpD57/XVzhvp0emprj4ESAkWnpMZZP7g/NUb7R1kNdhXUTBTNQaJjyK8EnGlD/7f8GuMSAftVYnId/GTTywFbOvZ733WrS0cMRl36XZGHmezCEu2D2uS01tumMDi3JfqJKPsGf root@a
复制粘贴到b主机.ssh/authorized_key文件里,若不存在手动创建:
1 # cat authorized_keys 2 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+Mte708BSEoyFdu1lShkj00FRVFmQwf9H++1KtbAfxuL09LlUPIN3W/GfAK7I3aQk19n5tfYZGVZc1mABuQGFjOq0nBFuWLpCcWU/8X2d496MF0gsxNcXxa5+YXqjulIJdGkIvDKuQJalnsbXP1M3rKbKptxmUyrQxyC7pVsXk6ccko1fZRMBLR1Vf7A8OsUfh/NWF16YtZU14SqpD57/XVzhvp0emprj4ESAkWnpMZZP7g/NUb7R1kNdhXUTBTNQaJjyK8EnGlD/7f8GuMSAftVYnId/GTTywFbOvZ733WrS0cMRl36XZGHmezCEu2D2uS01tumMDi3JfqJKPsGf root@a
3.免密钥登陆
ssh b主机ip
4.问题
由于不知道root用户密码,采取的第二种方法,发现还是无法免密钥登陆:
4.1首先,检查权限,并没有问题:
.ssh目录,以及/home/当前用户 需要700权限:
1 chmod 700 ~/.ssh 2 chmod 700 /home/当前用户
b主机.ssh目录下的authorized_keys文件需要600或644权限:
1 chmod 644 ~/.ssh/authorized_keys
4.2检查b主机/etc/ssh/sshd_config配置文件,根据实际情况改参数
修改以下参数后,可以通过root免密钥登陆:
PermitRootLogin no
改成:
PermitRootLogin yes
注意:默认此参数是yes,由于有人改动,所以ssh密钥失败。
记得一定要重启sshd服务:
1 # /etc/init.d/sshd restart
此时用a主机root用户通过ssh免密钥登陆b主机root用户了。。。