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

原文地址:https://www.cnblogs.com/virgosnail/p/10192447.html