SSH使用私钥无密码登录远程服务器

/ 0评 / 0

SSH无密码登录要使用公钥与私钥。linux下可以用用ssh-keygen生成公钥/私钥对,下面我以ubuntu为例。有机器A(192.168.0.2),B(192.168.0.3)。现想A通过ssh免密码登录到B。1.在A机下生成公钥/私钥对。

[ua@A ~]$ ssh-keygen -t rsa

后面可加-P表示密码,-P '' (-P后面两个单引号)就表示空密码,也可以不用-P参数,这样就要三车回车,用-P就一次回车。
它在/home/ua下生成.ssh目录,.ssh下有id_rsaid_rsa.pub

把A机下的id_rsa.pub复制到B机下,在B机的.ssh/authorized_keys文件里,用scp复制(windows下可用图形化的WinSCP软件)。也可以使用cat命令查看id_rsa.pub内容,直接粘贴到B机器。

[ua@A ~]$ scp .ssh/id_rsa.pub ub@192.168.0.3:/home/ub/id_rsa.pub
ub@192.168.0.3's password:

由于还没有免密码登录的,所以要输入密码。

B机把从A机复制的id_rsa.pub内容添加到.ssh/authorzied_keys文件里。

[ub@B ~]$ mkdir .ssh
[ub@B ~]$ cat id_rsa.pub >> .ssh/authorized_keys
[ub@B ~]$ chmod 600 .ssh/authorized_keys

authorized_keys的权限要是600。

禁止密码登录

vi /etc/ssh/sshd_config

修改配置文件

PasswordAuthentication no # 禁止密码登录

重启ssh服务

systemctl restart sshd.service

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注