我尝试通过PuTTy连接到我的Debian Google Compute Engine服务器(我也尝试了其他替代方案)但是当我这样做时,我得到了错误"断开连接:没有支持的身份验证方法可用(服务器发送:publickey)
谷歌服务器没有用户名和密码,只有一个自动登录自己终端的网址。
答案 0 :(得分:25)
我有PuTTY工作,然后有一天得到了这个错误。
解决方案:我修改了包含我的证书(私钥)的文件夹路径名,这导致Pageant失去了对证书的跟踪,因此是空的。
一旦我将证书重新安装到Pageant,那么Putty就会重新开始工作。
答案 1 :(得分:17)
默认情况下,您需要使用密钥ssh到Google计算引擎计算机,但如果您不需要这种安全级别,则可以打开密码身份验证
提示:使用云控制台中的在浏览器窗口中打开 SSH选项来访问计算机。然后切换到
sudo su - root
的root用户,以便在下面进行配置更改。
/etc/ssh/sshd_config
文件。PasswordAuthentication
和ChallengeResponseAuthentication
更改为yes
。/etc/init.d/ssh restart
。答案 2 :(得分:8)
您需要使用SSH密钥登录您的实例。
GCE文档解释了流程here。
答案 3 :(得分:6)
请按照以下指南操作:https://gist.github.com/feczo/7282a6e00181fde4281b 与图片。
简而言之:
使用Puttygen,点击'生成'按照指示移动鼠标并等待
输入您想要的用户名
输入您的密码
保存私钥
将'公钥的全部内容复制到OpenSSH authorized_keys文件' 窗口中。确保从开头到最后复制每一个字符!
转到Google Cloud Platform控制台中的Create instances page,然后在高级选项链接中粘贴公钥的内容。
完成后请注意实例的IP地址。 打开putty,从左侧菜单转到Connection / SSH / Auth并定义保存的密钥文件位置。
从左侧菜单转到Connection / Data并定义相同的用户名
现在使用您之前指定的密码登录并运行
sudo su
- 你已经完成了。
答案 4 :(得分:4)
我遇到了同样的问题,只是想出来了!
假设您已经去创建了私钥/公钥,在远程服务器上添加了您的公钥...输入username@remotehost.com然后转到Connection - > SSH - >单击“验证”并单击“浏览”以找到您的私钥。选择后,它将填充输入字段。之后点击OPEN ...
因此,重要的是订单...确保首先输入主机的参数,然后找到您的私钥。
答案 5 :(得分:2)
我收到此错误是因为我忘记在GCE元数据部分的密钥后面添加我的用户名。例如,您打算在元数据部分中添加一个如下所示的条目:
sshKeys username:key
我忘记了username:
部分,因此当我尝试使用该用户名登录时,我得到了不支持的auth方法错误。
或者,要完全关闭关闭ssh密钥要求,请查看我的other answer。
答案 6 :(得分:2)
显然在你的主文件夹上运行sudo chmod -R a+rw
也会导致这种情况发生。
答案 7 :(得分:1)
如果在Linux中使用ssh-keygen生成私钥,则需要使用puttygen进行转换,因为Putty不支持openssh密钥。
启动puttygen,然后单击Conversions - Import键,然后单击Browse并选择使用openssh生成的私钥,然后单击Save private key。
使用新密钥进行连接。
答案 8 :(得分:1)
电力下降并出现此错误。解决方法是双击.ppk(Putty私钥)并输入密码。
答案 9 :(得分:1)
下载“PuttyGEN”获取publickey和privatekey 使用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没有 [...] 重启ssh
/etc/init.d/ssh restart。
其余配置你的putty作为教程 注意:选择选美添加键并开始会话会更好
答案 10 :(得分:1)
此问题主要是由您连接的用户名无法访问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
然后使用puttygen
创建一个新的ppk文件,然后提供您想要的用户名my_work_space
。然后
将publickey和privatekey保存在文件夹中。
下一步:从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将此私钥连接到任何位置。它会打开文件而不显示权限错误
:)欢乐时光。
答案 11 :(得分:1)
我遇到了同样的问题并经过多次试错后解决了。 在/ etc / ssh / ssh_config中,设置
PubkeyAuthentication yes
AuthorizedKeysFile .ssh / authorized_keys
PasswordAuthentication no
AuthenticationMethods publickey
答案 12 :(得分:0)
在rhel7中,PasswordAuthentication和ChallengeResponseAuthentication默认设置为NO。
将它们更改为NO并重新启动sshd。
答案 13 :(得分:0)
类似问题-相同的错误消息。当尝试使用ssh从bitbucket克隆某些内容时,我收到了相同的消息。问题出在我在mercurial.ini中配置的ssh配置中:我使用了错误的bitbucket用户名。更正用户名后,一切正常。
答案 14 :(得分:0)
对我来说,这是我的问题,https://unix.stackexchange.com/questions/282908/server-refused-public-key-signature-despite-accepting-key-putty的解决方案
“查看日志/ var / log / secure时,它被完全拒绝。我对centos有点陌生,因为我主要是debian这类的家伙,所以我不知道/ var / log /安全
经过检查并进行了一些搜索之后,结果发现,如果您只想将密钥用于root登录,则PermitRootLogin无需是无密码的PermitRootLogin。做到了。感谢大家的贡献。”
答案 15 :(得分:0)
答案 16 :(得分:0)
我知道这是一个古老的问题,但是由于this answer,我遇到了同样的问题并得以解决。
我经常使用腻子,从来没有任何问题。我一直使用公钥身份验证。今天,如果不更改任何设置,我将无法再次连接到服务器。
然后我看到the answer,并记得我无意中在用户的主目录中运行了chmod 777 .
。我从其他地方进行连接,然后只运行了chmod 755 ~
。一切立即恢复正常,我什至不必重启sshd。
希望我可以节省一些时间