ssh免密登录设置及FAQ

  • 生成sshkey

    ssh-keygen -t  rsa -C "你的邮箱@xxx.com"
    
  • id_rsa.pub 文件复制到ServerB机器的 $HOME/ssh 目录下,并保存为authorized_keys

    ssh-copy-id -i ~/.ssh/id_rsa.pub user_name@ip
    
  • 赋权

    chmod 644 authorized_keys 
    chmod 700 -R .ssh
    
  • FAQ

    • Permission denied (publickey)
      • 现象:执行ssh -T [email protected]时,返回Permission denied (publickey).
      • 原因1
        • 现象:生成Key的时候,采用了自定义文件名,没有采用默认的id_rsa文件名,导致系统在本地找不到与publickey相对应的privatekey
        • 解决方法
          • 执行ssh-add ~/.ssh/自定义的privatekey,成功后再次执行ssh -T [email protected]
          • 执行ssh-add ~/.ssh/自定义的privatekey报错:Could not open a connection to your authentication agent:执行命令
          eval `ssh-agent`
          
          后,再执行ssh-add,然后执行ssh -T
      • 原因2
        • 现象:本地sshkey多于1个
        • 解决方法:在.ssh文件夹下设置config文件,来配置多个sshkey
          # gitee
          Host gitee.com
          Port 22
          HostName gitee.com
          PreferredAuthentications publickey
          IdentityFile C:\Users\用户名\.ssh/私有key文件名
          User [email protected]
          
          # work
          Host gitlab.company.com
          HostName gitlab.company.com
          PreferredAuthentications publickey
          IdentityFile C:\Users\用户名\\.ssh/私有key文件名
          User [email protected]
          
          • 现象:Bad owner or permissions on /home/centos/.ssh/config
            • 解决方法:sudo chmod 600 /home/centos/.ssh/config
        • 验证:ssh -T [email protected]

你可能感兴趣的:(Linux基础)