我是云计算方面的新手,我试图使用SSH来控制我的VM实例,但是当我使用命令(带有debug)时
gcloud compute ssh my-instance-name --verbosity = debug
显示错误
调试:(gcloud.compute.ssh)[/ usr / bin / ssh]退出,返回代码[255]。追溯(最近一次通话):文件“ /google/google-cloud-sdk/lib/googlecloudsdk/calliope/cli.py”行983,在执行中资源= calliope_command.Run(cli = self,args = args)文件“ /google/google-cloud-sdk/lib/googlecloudsdk/calliope/backend.py”,784行,在运行中资源= command_instance.Run(args)文件“ /google/google-cloud-sdk/lib/surface/compute/ssh.py”,第262行,在跑return_code = cmd.Run(ssh_helper.env,force_connect = True)文件“ /google/google-cloud-sdk/lib/googlecloudsdk/command_lib/util/ssh/ssh.py”,行1256,在运行中引发CommandError(args [0],return_code = status)CommandError:[/ usr / bin / ssh]退出,返回码为[255]。错误:(gcloud.compute.ssh)[/ usr / bin / ssh]退出,返回码为[255]。
我尝试解决此链接中的问题,但不起作用https://groups.google.com/forum/#!topic/gce-discussion/O-c10TM4ZLM
这不是一个具体的答案,但是我认为首先应该通过以下方式设置您的项目:
gcloud config set project PROJECT_ID
然后
gcloud compute ssh my-instance-name --verbosity=debug
此链接将很有用:
SSH错误代码255是GCP返回的一般错误。您可以尝试以下选项之一。
1。等待几分钟,然后重试。可能是:
实例尚未完成启动。
SSH密钥的元数据尚未完成传播到项目或实例。
2。确认防火墙没有阻止对实例的SSH访问。
gcloud compute firewall-rules list | grep "tcp:22"
[如有必要,创建防火墙规则以允许给定VPC网络,子网或实例标签使用TCP 22。
gcloud compute firewall-rules create ssh-allow-incoming --priority=0 --allow=tcp:22 --network=[VPC-Network]
3。确保根卷没有磁盘空间不足。磁盘空间不足时,console log中将显示以下消息:
...设备上没有剩余空间...
... google-accounts:错误调用响应处理程序的异常。[Errno 2]在['/ tmp','/ var / tmp','/ usr / tmp','/'] ...
4。确保实例还没有耗尽内存
5。验证是否为project或instance设置了临时SSH密钥元数据。
最后,您可以遵循其supported或third-party的任何方法
假设您拥有正确的IAM权限,使用OSlogin ssh进入实例,而不是管理ssh密钥,GCP更容易且更受GCP的青睐。
在云外壳中,输入此
gcloud compute --project PROJECTID project-info add-metadata --metadata enable-oslogin=TRUE
这将在项目中的所有实例上启用OSLogin,而不是使用ssh密钥,gcp将检查您的IAM权限并根据这些内容进行身份验证。
如果您不是项目所有者,请确保您具有Cloud IAM中的compute.osloginviewer或管理员权限
一旦启用,请使用您发布的命令再次尝试通过SSH进入实例。