SSH 错误处理记录

SSH 错误处理记录

主机秘钥不匹配

报错信息

Read from socket failed: Connection reset by peer

通常,在linux中使用ssh的时候,如果出现这个错误,建议首先去查看log。ubuntu的ssh的log记录在/var/log/auth.log
log错误会类似于如下:

Dec 22 09:43:35 x079-liongao sshd[14892]: error: This private key will be ignored.  
Dec 22 09:43:35 x079-liongao sshd[14892]: error: bad permissions: ignore key: /etc/ssh/ssh_host_dsa_key  
Dec 22 09:43:35 x079-liongao sshd[14892]: error: Could not load host key: /etc/ssh/ssh_host_dsa_key 

Dec 22 09:43:35 x079-liongao sshd[14892]: error: This private key will be ignored.  
Dec 22 09:43:35 x079-liongao sshd[14892]: error: bad permissions: ignore key: /etc/ssh/ssh_host_rsa_key  
Dec 22 09:43:35 x079-liongao sshd[14892]: error: Could not load host key: /etc/ssh/ssh_host_rsa_key

找到问题所在,用如下命令

ssh-keygen -t dsa -P '' -f  /etc/ssh/ssh_host_dsa_key 
 ssh-keygen -t rsa -P '' -f  /etc/ssh/ssh_host_rsa_key

分别把这两个密钥生成就可以正常启动和使用 ssh了 ,其他配置问题请查看配置文件,/etc/ssh/ssh_config 和 /etc/ssh/sshd_config

目录权限问题

报错信息

Permission denied (publickey)

出现这个问题不一定能说明公钥不存在,如果检查公钥存在/.ssh/authorized_keys文件中切无误,请检查SSH配置文件,迷钥存放目录权限问题

SSH对公钥、私钥的权限和所有权的要求是非常严格的,总结如下:

  • 下面两个目录的所有权必须是user,所属组也应该是user,权限必须为700

    ~/user
    ~/user/.ssh
  • 公钥文件的所有权必须是user,所属组也应该是user,权限必须为644

    ~/.ssh/authorized_keys
  • 私钥文件的所有权必须是user,所属组也应该是user,权限必须是600

    ~/.ssh/id_rsa

你可能感兴趣的:(SSH 错误处理记录)