我不能从我的计算机ssh到Google Cloud上托管的服务器 .
我尝试使用user@domain.com正常的ssh-keygen并上传上次工作的公钥,但这次却没有 . 我更改了帐户的密码后问题就开始了 . 之后我不再ssh或sftp进入帐户,虽然我没有断开连接,直到我断开连接 .
然后我尝试了gcloud ssh user @ instance并且运行正常并且告诉我它还没有传播 .
我在服务器的ssh配置文件中添加了 AllowUsers user
,我在服务器上重新启动了ssh,但结果仍然相同
这是错误:
Permission denied (publickey).
ERROR: (gcloud.compute.ssh) [/usr/bin/ssh] exited with return code [255].
更新:
我一直在使用谷歌技术支持,这个问题仍然无法解决 . 一个名为 authorized_keys
权限的文件在启动时不断更改为另一个用户,我也无法登录 .
所以我把它改成:
thisUser:www-data 755
但在启动时它会将其更改为:
otherUser:otherUser 600
2 回答
有几件事要解决这个问题 . 您可以利用GCE中的 metadata 功能并添加一个可自动更改权限的启动脚本 .
key : startup-script
value : chmod 755 /home/your_user/.ssh/authorized_keys 或 chmod 755 ~/.ssh
重新启动后
在元数据中找到启动脚本 .
startupscript:运行启动脚本/var/run/google.startup.script
更多信息可以在HERE找到
希望有所帮助!
我通过删除VM设置中自定义元数据下的现有ssh密钥解决了这个问题 . 然后我可以登录ssh