我正在尝试通过 PuTTy 连接到我的 Debian Google Compute Engine 服务器(我也尝试过其他替代方法),但是当我这样做时,我收到错误“断开连接:没有支持的身份验证方法可用(服务器发送:公钥)
谷歌服务器没有用户名和密码,只有一个自动登录到自己终端的网址。
我正在尝试通过 PuTTy 连接到我的 Debian Google Compute Engine 服务器(我也尝试过其他替代方法),但是当我这样做时,我收到错误“断开连接:没有支持的身份验证方法可用(服务器发送:公钥)
谷歌服务器没有用户名和密码,只有一个自动登录到自己终端的网址。
我让 PuTTY 工作,然后有一天得到了这个错误。
解决方案:我修改了包含我的证书(私钥)的文件夹路径名,这导致 Pageant 失去了对证书的跟踪,因此是空的。
一旦我将证书重新安装到 Pageant 中,Putty 就会再次开始工作。
默认情况下,您需要使用密钥 ssh 进入您的谷歌计算机引擎机器,但如果您不需要该级别的安全性,您可以打开密码验证。
提示:使用云控制台中的在浏览器窗口中打开SSH 选项来访问机器。然后切换到 root 用户
sudo su - root
以进行下面的配置更改。
/etc/ssh/sshd_config
文件。PasswordAuthentication
_ChallengeResponseAuthentication
yes
/etc/init.d/ssh restart
。请按照本指南操作:https ://gist.github.com/feczo/7282a6e00181fde4281b 并附上图片。
简而言之:
使用 Puttygen,单击“生成”按照说明移动鼠标并等待
输入您想要的用户名
输入您的密码
保存私钥
复制“用于粘贴到 OpenSSH 授权密钥文件的公钥”窗口的全部内容。确保从头到尾复制每个字符!
转到 Google Cloud Platform Console 中的创建实例页面,然后在高级选项链接中粘贴您的公钥的内容。
完成后记下实例的 IP 地址。打开 putty,从左侧菜单转到 Connection / SSH / Auth 并定义保存的密钥文件位置。
从左侧菜单转到连接/数据并定义相同的用户名
现在使用您之前指定的密码登录并运行
sudo su
- 一切就绪。
您需要使用 SSH 密钥登录到您的实例。
GCE 文档在此处解释了该过程。
我有同样的问题,只是想通了!
假设您已经创建了私钥/公钥,并在远程服务器上添加了您的公钥...输入 username@remotehost.com 然后转到 Connection -> SSH -> Auth 并单击 Browse 以找到您的私钥。选择后,它将填充输入字段。之后点击打开...
所以这里重要的是顺序......确保您首先输入主机参数,然后找到您的私钥。
显然sudo chmod -R a+rw
在您的主文件夹上运行也会导致这种情况发生。
我收到此错误是因为我忘记在 GCE 元数据部分的密钥后面添加我的用户名。例如,您打算在元数据部分添加一个条目,如下所示:
sshKeys username:key
我忘记了这个username:
部分,因此当我尝试使用该用户名登录时,我得到了不支持的身份验证方法错误。
或者,要完全关闭 ssh 密钥要求,请查看我的其他答案。
这个问题主要是你连接的用户名没有访问GCE中的shell造成的。因此,您使用以下步骤来解决此问题。
gcloud auth list
如果您使用正确的登录名。请按照以下步骤操作。否则使用
gcloud auth revoke --all
gcloud auth login [your-iam-user]
并且您获得令牌或它会自动检测令牌。
gcloud compute --project "{projectid}" ssh --zone "{zone_name}" "{instance_name}" .
如果您不知道上面的这一行,请单击compute engine-> ssh dropdown arrow-> view google command-> copy
该代码并使用它
现在它会更新您的元数据,并且它可以在您计算机的文件夹中使用Users->username
~/.ssh/google_compute_engine.ppk
~/.ssh/google_compute_engine.pub
然后您使用创建一个新的 ppk 文件puttygen
并提供您想要的用户名,如my_work_space
. 然后将公钥和私钥保存在一个文件夹中。
下一步:从 puttygen 复制公钥数据并在 gcloud 元数据中创建新的 ssh 密钥
cloud console ->compute engine->metadata->ssh key->add new item->paste the key and save it
现在返回你的shell命令行工具然后输入
sudo chown -R my_work_space /home/my_work_space
现在您使用 sftp 将此私钥连接到任何地方。它打开文件而不显示权限错误
:) 欢乐时光。
电力下降并出现此错误。解决方案是双击您的 .ppk(腻子私钥)并输入您的密码。
我遇到了同样的问题,经过几次反复试验后解决了。在 /etc/ssh/ssh_config 中,设置
公钥认证是
AuthorizedKeysFile .ssh/authorized_keys
密码验证无
AuthenticationMethods 公钥
然后,打开腻子。在“已保存的会话”中,输入服务器 IP,通过左侧面板上的路径 Connection->SSH->Auth->Browse 搜索您的私钥并打开它。最后,回到左侧面板的 Session of putty,可以看到服务器 IP 地址仍在“Saved Sessions”字段中,然后点击“Save”,这是关键步骤。它将让用户不再使用密码登录。玩得开心,
下载“PuttyGEN”获取公钥和私钥,使用 gcloud SSH 编辑并粘贴位于 /home/USER/.ssh/authorized_keys 中的公钥
sudo vim ~/.ssh/authorized_keys
点击 i 键粘贴 publicKEY。要保存,请点击 Esc、:、w、q、Enter。编辑 /etc/ssh/sshd_config 文件。
sudo vim /etc/ssh/sshd_config
改变
PasswordAuthentication no [...] ChallengeResponseAuthentication 为 no。[...] UsePAM no [...] 重新启动 ssh
/etc/init.d/ssh 重启。
其余的将您的腻子配置为教程注意:选择选美添加密钥并开始会话会更好
如果在 Linux 中使用 ssh-keygen 生成了私钥,则需要使用 puttygen 进行转换,因为 Putty 不支持 openssh 密钥。
启动 puttygen,点击 Conversions - Import key,然后点击 Browse 并选择用 openssh 生成的私钥,然后点击 Save private key。
使用您的新密钥进行连接。
类似的问题 - 相同的错误消息。尝试使用 ssh 从 bitbucket 克隆某些内容时,我收到了相同的消息。问题出在我在 mercurial.ini 中配置的 ssh 配置中:我使用了错误的 bitbucket 用户名。在我更正用户名后,一切正常。
PasswordAuthentication 和 ChallengeResponseAuthentication 在 rhel7 中默认设置为 NO。
将它们更改为 NO 并重新启动 sshd。
对我来说,这是我的问题,来自https://unix.stackexchange.com/questions/282908/server-refused-public-key-signature-despite-accepting-key-putty的解决方案
“查看日志 /var/log/secure 表明它完全被拒绝了。我对 centos 有点陌生,因为我主要是一个 debian 类型的人,所以我不知道 /var/log/secure
在检查了这一点并进行了一些搜索之后,如果您只想专门使用密钥进行 root 登录,那么 PermitRootLogin 不需要是 PermitRootLogin without-password。那成功了。感谢大家的贡献。”
我收到了同样的错误消息,发现我的错误出在我与 putty 一起使用的用户名中。显然 GCE SSH 密钥列表会更改您在某些列表中的用户名字符。在我的例子中,下划线改为句号。即:my_username 变为 my.username
我无意中从列表中复制了错误的用户名并得到了相同的错误消息。