Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 控制台上的SSH google cloud权限被拒绝(公钥),google cloud sdk文件错误_Linux_Ssh_Google Cloud Platform_Putty - Fatal编程技术网

Linux 控制台上的SSH google cloud权限被拒绝(公钥),google cloud sdk文件错误

Linux 控制台上的SSH google cloud权限被拒绝(公钥),google cloud sdk文件错误,linux,ssh,google-cloud-platform,putty,Linux,Ssh,Google Cloud Platform,Putty,我是云计算新手,我尝试使用SSH来控制我的VM实例,但当我使用带有debug的命令时 gcloud compute ssh my instance name-verbosity=debug 这是一个错误 调试:gcloud.compute.ssh[/usr/bin/ssh]已退出,返回代码为 [255]. 回溯最近的调用上次:文件 /google/googlecloudsdk/lib/googlecloudsdk/calliope/cli.py,第行 983,执行中 resources=call

我是云计算新手,我尝试使用SSH来控制我的VM实例,但当我使用带有debug的命令时

gcloud compute ssh my instance name-verbosity=debug

这是一个错误

调试:gcloud.compute.ssh[/usr/bin/ssh]已退出,返回代码为 [255]. 回溯最近的调用上次:文件 /google/googlecloudsdk/lib/googlecloudsdk/calliope/cli.py,第行 983,执行中 resources=calliope_command.Runcli=self,args=args File/google/google cloud sdk/lib/googlecloudsdk/calliope/backend.py, 784线,运行中 resources=command_instance.Runargs File/google/google cloud sdk/lib/surface/compute/ssh.py,第262行,在 跑 返回\u code=cmd.Runssh\u helper.env,force\u connect=True File/google/google cloud sdk/lib/googlecloudsdk/command\u lib/util/ssh/ssh.py, 第1256行,运行中 raise CommandErrorargs[0],return\u code=status CommandError:[/usr/bin/ssh]已退出,返回代码为[255]。错误: gcloud.compute.ssh[/usr/bin/ssh]已退出,返回代码为[255]

我试图解决这个链接中的问题,但它不起作用

这不是一个具体的答案,但我认为首先你应该通过以下方式来确定你的项目:

gcloud config set project PROJECT_ID
然后

此链接将非常有用:


SSH错误代码255是GCP返回的一般错误。您可以尝试以下选项之一

一,。请稍等几分钟,然后重试。有可能:

实例尚未完成启动

SSH密钥的元数据尚未传播到项目或实例

来宾环境尚未读取SSH密钥元数据。 二,。验证对实例的SSH访问未被防火墙阻止

如有必要,创建防火墙规则以允许给定VPC网络、子网或实例标记使用TCP 22

gcloud compute firewall-rules create ssh-allow-incoming --priority=0 --allow=tcp:22 --network=[VPC-Network]
三,。确保根卷没有磁盘空间不足。磁盘空间不足时,将在中看到以下消息:

…设备上没有剩余空间

…google帐户:调用响应处理程序时出现错误异常。 [Errno 2]在['/tmp','/var/tmp'中找不到可用的临时目录, “/usr/tmp”、“/”]

四,。确保实例没有耗尽内存

五,。验证是否为或设置了临时SSH密钥元数据


最后,您可以按照他们的任何方法进行操作

假设您拥有正确的IAM权限,GCP更倾向于使用OSlogin将ssh连接到实例中,而不是管理ssh密钥

在cloud shell中,输入以下内容

gcloud compute --project PROJECTID project-info add-metadata --metadata enable-oslogin=TRUE
这将在项目中的所有实例上启用OSLogin,而不是使用ssh密钥gcp将检查您的IAM权限并基于这些权限进行身份验证

如果您不是项目所有者,请确保您在Cloud IAM中拥有compute.osLoginView或admin权限


启用后,使用您发布的命令再次尝试对实例进行SSHing

Stack Overflow是一个关于编程和开发问题的网站。对于这个问题,您可能应该使用上的另一个站点。另请参见帮助中心中的。
gcloud compute firewall-rules create ssh-allow-incoming --priority=0 --allow=tcp:22 --network=[VPC-Network]
gcloud compute --project PROJECTID project-info add-metadata --metadata enable-oslogin=TRUE