本文介绍使用第三方SSH客户端远程连接Linux实例时,提示“No supported authentication methods available (server sent: publickey,gssapi-keyex,gssapi-with-mic)”错误的问题原因和解决方案。
问题现象
当您使用第三方SSH客户端远程连接Linux系统的ECS实例时,输入了正确的账号和密码,但是还是出现类似以下错误信息。
Permission denied (publickey,gssapi-keyex,gssapi-with-mic)sshd[10826]: Connection closed by XX.XX.XX.XXNo supported authentication methods available (server sent: publickey,gssapi-keyex,gssapi-with-mic)
问题原因
使用密码或密钥登录都可能出现该问题,具体说明如下:
使用密码登录出现该问题:可能是ECS实例内禁止用户使用密码方式连接,您可以将
PasswordAuthentication参数值修改为yes以解决此问题。具体操作,请参见方案一:允许使用密码方式登录。使用密钥登录出现该问题:可能是ECS实例内禁止了密钥登录或SSH密钥对的公钥未加入对应用户
.ssh/authorized_keys中,您可以检查/etc/ssh/sshd_config文件或重新上传公钥到authorized_keys文件中以解决此问题。具体操作,请参见方案二:复制公钥到authorized_keys文件。
方案一:允许使用密码方式登录
以VNC方式登录ECS实例。
具体操作,请参见通过密码认证登录Linux实例。
查看
/etc/ssh/sshd_config的参数PasswordAuthentication配置是否有误。sudo cat /etc/ssh/sshd_config如下图所示,
PasswordAuthentication参数设置为no,表示禁止以密码方式登录,需要修改为yes。
将
PasswordAuthentication no修改为PasswordAuthentication yes。打开SSH配置文件。
sudo vim /etc/ssh/sshd_config将
PasswordAuthentication no修改为PasswordAuthentication yes。
按Esc键,输入
:wq保存修改。
执行如下命令,重启SSH服务。
sudo systemctl restart sshd.service重新远程连接Linux实例,如果可以正常连接,说明问题已解决。
方案二:复制公钥到authorized_keys文件
以VNC方式登录ECS实例。
具体操作,请参见通过密码认证登录Linux实例。
查看
/etc/ssh/sshd_config的参数PubkeyAuthentication配置是否有误。sudo cat /etc/ssh/sshd_config当
PubkeyAuthentication参数为yes时,说明可能是SSH密钥对的公钥未加入对应用户.ssh/authorized_keys中,请执行步骤4。当
PubkeyAuthentication参数为no,表示禁止以密钥方式登录,需要修改为yes。请执行步骤3。
将
PubkeyAuthentication no修改为PubkeyAuthentication yes。打开SSH配置文件。
sudo vim /etc/ssh/sshd_config将
PubkeyAuthentication no修改为PubkeyAuthentication yes。
按Esc键,输入
:wq保存修改。执行如下命令,重启SSH服务。
sudo systemctl restart sshd.service
复制公钥到
authorized_keys文件。执行如下命令,打开
authorized_keys文件。sudo vim /home/user/.ssh/authorized_keys说明/home/user请替换成实际的用户。
按
i键进入编辑模式。将本地保存的公钥粘贴到
authorized_keys文件中。按
Esc键,输入:wq退出编辑模式。
重新远程连接Linux实例,如果可以正常连接,说明问题已解决。