本文介绍使用第三方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.XX
No 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 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实例,如果可以正常连接,说明问题已解决。