我无法连接到Google Cloud虚拟实例。我启动了虚拟实例,并能够使用gcloud beta compute ssh
正常登录。
然后,我尝试使用gcloud compute scp --recurse <local_source> \ <user_name>@<instance>:<remote_path>
我得到了“正在更新项目ssh元数据...”的响应,这在尝试传输文件时从未见过。文件传输失败:
?\240<username>@<IP>: Permission denied (publickey).
此外,现在我什至无法登录虚拟机。当我尝试登录时,我得到:
ssh: connect to host <IP> port 22: Operation timed out
ERROR: (gcloud.beta.compute.ssh) [/usr/bin/ssh] exited with return code [255].
据我所知,防火墙规则仍然是默认规则,并允许通过端口22进行连接。我仍然能够通过浏览器窗口登录实例,但不能从命令行登录。任何帮助将不胜感激!
答案 0 :(得分:0)
如果您遇到ssh: connect to host <IP> port 22: Operation timed out
错误,那么您的GCP项目中的防火墙规则似乎有问题。
创建一个允许SSH连接的新规则:
gcloud compute --project=xxxxxx firewall-rules create newrulename --direction=INGRESS --priority=999 --network=default --action=ALLOW --rules=tcp:22 --source-ranges=0.0.0.0/0
我已将优先级更改为999(高于1000),因此它将覆盖默认优先级(以防万一有规则阻止端口22)。
之后,再次尝试gcloud compute ssh myinstancename
,它应该可以照常工作。