CentOS7配置免密码登陆及不生效问题解决

1、配置免密登录:

#在本机(此主机名记为 nodeA)自动以rsa算法生成公私钥对
ssh-keygen -t rsa -f /root/.ssh/id_rsa -P ""

#配置公钥到其他节点(此主机名记为 nodeB),输入对方密码即可完成从nodeA到nodeB的免密访问
ssh-copy-id nodeB

#如果想要双向免密,需要在nodeB上生成公私钥对,然后将其公钥配置到nodeA上,方法类似。

2、如果配置的免密登录不生效,可以从以下几点检查:

(1)、各节点~/.ssh目录及其目录下的文件权限:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/*

(2)、如果上述配置后还是不生效,检查/etc/ssh/sshd_config配置,然后执行systemctl restart sshd重启sshd服务:

#禁用root账户登录,如果是用root用户登录请开启,如果注释掉,默认即为yes
#PermitRootLogin yes
 

# 是否允许用户自行使用成对的密钥系统进行登入行为,仅针对 version 2,如果注释掉,默认即为yes。
#RSAAuthentication yes
#PubkeyAuthentication yes

# 至于自制的公钥数据就放置于用户家目录下的 .ssh/authorized_keys 内
AuthorizedKeysFile      .ssh/authorized_keys

(3)、如果上述配置之后还是不能访问,尝试将/etc/ssh/sshd_config中的StrictModes配置改为no(如果注释掉,默认是yes的。注意这个配置可能会降低安全性),然后执行systemctl restart sshd重启sshd服务:

# 是否让 sshd 去检查用户家目录或相关档案的权限数据,
# 这是为了担心使用者将某些重要档案的权限设错,可能会导致一些问题所致。
# 例如使用者的 ~.ssh/ 权限设错时,某些特殊情况下会不许用户登入
StrictModes no

 

你可能感兴趣的:(linux实用方法)