SSH配置免密登录
【参考文章】:linux服务器ssh免密码登录
【参考文章】:ssh分发秘钥时出现错误“Permission denied (publickey,gssapi-keyex,gssapi-with-mic)”
【参考文章】:ssh免密码登录Permission denied (publickey,gssapi-keyex,gssapi-with-mic) 的解决方案!
【参考文章】:ssh配置无密码登录
1. 生成服务器的公钥和私钥文件
输入命令:ssh-keygen -t rsa
提示输入点击回车,直到文件生成;
默认生成的文件在 ~/.ssh 目录下;
.ssh 文件夹为隐藏文件, ls -a 即可显示全部文件;
2. 将公钥文件内容追加到authorized_keys 文件
如果没有 authorized_keys 文件,则手动创建;
然后将 id_rsa.pub 文件内容复制到 authorized_keys 文件;
cat id_rsa.pub >> authorized_keys ;
注意 > 是讲内容重写到文件,>> 是将内容追加到文件;
id_rsa.pub 文件的内容,其中带有当前的用户名,免密登录时需要使用该用户来登录
3. 修改文件权限
chmod 700 ~/.ssh
chmod 644 ~/.ssh/authorized_keys # 信任文件的权限,必须是644
chmod 600 ~/.ssh/id_rsa # 私钥文件的权限
4. 修改 /etc/ssh/sshd_config
下面参数选项没有则手动创建,有注释则取消注释,参数值不符合则修改;
HostKey /etc/ssh/ssh_host_rsa_key
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys #公钥文件存储位置
UsePAM no # CentOS 7.5 中需要修改为 yes
下面参数选项根据自身需要进行修改;
PasswordAuthentication yes #允许密码认证登录(不要手贱设置为 no, 不然你就登不上服务器了)
PermitRootLogin no #允许root认证登录
重启 SSH 服务
systemctl restart sshd.service
5. 本地免密登录
ssh 用户名@127.0.0.1
6. 远程免密登录
A服务器下的.ssh 文件下保存了B服务器用户userB的公钥,则userB就可以在B服务器上免密登录服务A了
想要远程免密登录某个服务器,就把自己的 id_rsa.pub(公钥文件) 追加到某个服务器的 .ssh/authorized_keys 文件中;
ssh username@serverIP