无法SSH登录Linux系统的ECS实例

无法SSH登录Linux系统的ECS实例

更新时间:2018-05-22 18:19:10

问题症状

无法SSH登录系统。查看日志文件 /var/log/auth.log,可能显示如下几种错误信息:
  • 错误一
    May 21 12:03:46 debug sshd[1470]: error: key_load_public: invalid format
    May 21 12:03:46 debug sshd[1470]: error: Could not load host key: /etc/ssh/ssh_host_rsa_key
    May 21 12:03:46 debug sshd[1470]: error: key_load_public: invalid format
    May 21 12:03:46 debug sshd[1470]: error: Could not load host key: /etc/ssh/ssh_host_dsa_key
    May 21 12:03:46 debug sshd[1470]: error: key_load_public: invalid format
    May 21 12:03:46 debug sshd[1470]: error: Could not load host key: /etc/ssh/ssh_host_ecdsa_key
    May 21 12:03:46 debug sshd[1470]: error: Could not load host key: /etc/ssh/ssh_host_ed25519_key
    May 21 12:03:46 debug sshd[1470]: fatal: No supported key exchange algorithms [preauth]
    
  • 错误二
    May 21 10:55:25 debug sshd[1337]: error: Could not load host key: /etc/ssh/ssh_host_rsa_key
    May 21 10:55:25 debug sshd[1337]: error: Could not load host key: /etc/ssh/ssh_host_dsa_key
    May 21 10:55:25 debug sshd[1337]: error: Could not load host key: /etc/ssh/ssh_host_ecdsa_key
    May 21 10:55:25 debug sshd[1337]: error: Could not load host key: /etc/ssh/ssh_host_ed25519_key
    May 21 10:55:25 debug sshd[1337]: fatal: No supported key exchange algorithms [preauth]
    

解决方案

  1. 执行如下命令,查看SSH服务的公钥与密钥文件。
    ls -l /etc/ssh
    
    如果系统显示如下信息,说明公钥与密钥文件丢失。
  2. 如果系统显示如下信息,说明公钥与密钥文件异常。
  3. 执行如下命令,生成RSA类型的公钥与密钥文件。
    ssh-keygen -t rsa
    
    系统显示类似如下。
    填入RSA私钥的路径后回车,系统显示类似如下。
    注:RSA私钥的路径请在配置文件 /etc/ssh/sshd_config里查询。
  4. 执行如下命令,生成DSA类型的公钥与密钥文件。
    ssh-keygen -t dsa
    
  5. 执行如下命令,生成ECDSA类型的公钥与密钥文件。
    ssh-keygen -t ecdsa
    
  6. 重启SSH服务后,正常登录Linux系统。

适用于

  • 云服务器ECS