linux免密登录ssh验证配置方法及常见错误解决

目标:从服务器A免密登录服务器B

【配置方法】

1.在服务器A生成密钥文件,直接使用以下命令:

ssh-keygen

中间遇到输入内容一路回车即可,完成后会在 ~/.ssh 目录下生成两个文件:id_rsa(私钥文件)和 id_rsa.pub(公钥文件,在服务器B要用到的)

 

2.登录服务器B,编辑~/.ssh/authorized_keys文件,将服务器A里的~/.ssh/id_rsa.pub内容复制进去保存,并授予权限644。另外~/.ssh目录授权700

vim ~/.ssh/authorized_keys
chmod 644 ~/.ssh/authorized_keys
chmod 700 ~/.ssh

如果~/.ssh目录不存在,请手动创建,命令为:mkdir ~/.ssh

 

完成以上两步就可以实现了,如果遇到问题无法连接,请继续往下看:

 

【常见问题】

1.服务器B没打开公钥登录权限

解决方法:编辑/etc/ssh/sshd_config文件,注意以下几项的值:

PermitRootLogin yes

PubkeyAuthentication yes

AuthorizedKeysFile .ssh/authorized_keys

编辑完保存,重启sshd服务(ubuntu是ssh ,centos是sshd)

(这些值其实也是默认的,默认也是开启的,如果连不上还是需要检查下)

 

2.服务器B目录和文件权限

解决方法:检查并设置以下权限

~/.ssh/  700

~/.ssh/autorized_keys  644

 

3.服务器B开启了selinux

解决方法:使用以下命令关闭

setenforce 0

并且编辑配置文件(永久关闭)

vim /etc/selinux/config

改变里面的值

SELINUX=disabled

然后保存

 

以上方法可以解决99%的连不上问题。希望对你有帮助。

 

posted @ 2019-01-04 11:36  yzeng  阅读(1894)  评论(0编辑  收藏  举报