先去百度百科了解一下https://baike.baidu.com/item/ssh/10407?fr=aladdin
免密登录
1,测试有没有ssh服务,没有的话就安装openssh
2,cd ~/.ssh
3,ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
4,cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
5,本机测试ssh localhost
6,ssh-copy-id -i 目标用户@目标IP
权限保证:
1,.ssh文件夹的权限设置为700
2,.ssh文件夹里面的所有文件的如下
免密登陆拒绝访问,可能是因为其他用户有权限,不安全,仍需要密码登陆问题解决
如果A将公钥拷贝到B,但是A登陆B仍然需要输入密码,应当修改B主机的配置文件
(1)打开sshd_config配置文件
sudo vi /etc/ssh/sshd_config
(2)修改配置如下
#Port 22 监听的端口号,默认是22,可以自定义。
#Protocol 2 支持的协议,默认就好,不用修改
#PermitRootLogin yes 是否允许root直接登录,最好设置为no
#MMaxAuthTries 6 最大登录数,默认是6,建议设置为3,防止别人密码穷举。
#禁用root账户登录,如果是用root用户登录请开启
PermitRootLogin yes
# 是否让 sshd 去检查用户家目录或相关档案的权限数据,
# 这是为了担心使用者将某些重要档案的权限设错,可能会导致一些问题所致。
# 例如使用者的 ~.ssh/ 权限设错时,某些特殊情况下会不许用户登入
StrictModes no
# 是否允许用户自行使用成对的密钥系统进行登入行为,仅针对 version 2。
RSAAuthentication yes
PubkeyAuthentication yes
# 至于自制的公钥数据就放置于用户家目录下的 .ssh/authorized_keys 内
AuthorizedKeysFile .ssh/authorized_keys
#有了证书登录了,就禁用密码登录。
PasswordAuthentication no
(3)重启sshd服务
systemctl restart sshd.service
或者service sshd restart
异常
1,如果在拷yichagn“Agent admitted failure to sign using the key”异常,执行如下命令
执行ssh-add ~/.ssh/id_rsa
2,有一点很奇怪,Fedora允许rsa算法生成的不允许dsa算法生成的密钥登录,而CentOS两者都允许
CentOS的默认配置文件
Fedora的默认配置文件
即使给他加上HostKey /etc/ssh/ssh_host_dsa_key还是不行,而CentOS注释掉了竟然可以