gpt4 book ai didi

ssh - 无法使用GCloud Compute访问VM

转载 作者:行者123 更新时间:2023-12-02 13:50:08 25 4
gpt4 key购买 nike

我无法通过SSH访问它。从控制台输入
有效命令:gcloud compute --project“ssh
--zone“”“”

但是我仍然收到以下错误消息:

权限被拒绝(公钥)。
错误:(gcloud.compute.ssh)[/ usr / bin / ssh]退出,返回码为[255]。

  • 然后我取消了SSH:gcloud auth revoke --all
  • 然后我做了:gcloud auth登录
  • 然后尝试使用以下命令再次访问虚拟机:
    gcloud compute --project“ssh --zone”“”“

  • 我收到以下错误:
    错误:(gcloud.compute.ssh)无法获取资源:
    -对“项目”具有必需的“compute.instances.get”权限

    请帮忙。
    谢谢

    最佳答案

    Permission denied (publickey). ERROR: (gcloud.compute.ssh) [/usr/bin/ssh] exited with return code [255].



    该错误似乎表示SSH密钥存在某些错误,或者Linux Guest环境不完整。

    我想知道运行 gcloud auth revoke --all的目的是什么

    您可以提供以下命令的输出吗?
  • $ gcloud compute instances describe name-of-your-instance --zone

    zone-the-instance-is-in --project name-of-your-project
  • $ gcloud compute instances get-serial-port-output name-of-your-instance
    --zone zone-the-instance-is-in --project name-of-your-project
  • $ gcloud compute firewall-rules list --project name-of-your-project

  • 这些命令可能会有所帮助,因为:
  • 使用此命令,我们可以检查SSH密钥上ssh键的状态。
    实例以及实例中启用的范围(以及
    其他信息)
  • 此命令从可以帮助解决您遇到的连接问题的实例提供 serial output log entries 。请注意,在重新启动实例后将清除此日志,因此不要在此处遇到永久日志,但是此信息对您的情况很有用。
  • 此命令在项目中输出 firewall rules ;应该有一个默认的或管理的防火墙规则,如果没有,则允许端口22上的TCP入口流量(您需要创建一个)。

  • 您是否以隐身模式尝试过to SSH from the browser
    有时,浏览器扩展会阻止SSH通过浏览器功能的正常运行,这就是为什么我建议使用隐身模式。

    编辑
    为了使此帖子对社区有用(更易于阅读),我在这里总结以下一些评论:

    显示错误:

    Could not fetch resource: - Required 'compute.instances.get' permission for 'projects//zones//instances/



    操作:检查用户角色/权限
    $ gcloud beta iam roles list --account your-account-here

    > --- description: Full management of App Engine apps (but not storage).
    > etag: AA== name: roles/appengine.appAdmin stage: GA title: App Engine Admin
    > --- description: Ability to view App Engine app status. etag: AA== name: roles/appengine.appViewer stage: GA title: App Engine Viewer

    在上面的输出中:,该用户仅具有App Engine权限(但在Compute Engine中没有权限)

    操作:要求项目所有者添加一个角色,该角色授予用户对GCE实例的访问权限(实例管理员角色,计算管理员角色)
    此处提供的可用角色列表:cloud.google.com/compute/docs/access/iam#instance_admin_role

    必需的信息,运行2个命令:
  • ,以便从实例中检查日志:

    $ gcloud计算实例get-serial-port-输出您的实例名称--zone实例所在的区域位于--project您的项目名称

    SeaBIOS (version 1.8.2-20180102_145157-google) Total RAM Size = 0x000000006cc00000 = 1740 MiB CPUs found: 1 Max CPUs supported: 256 found virtio-scsi at 0:3 virtio-scsi vendor='Google' product='PersistentDisk' rev='1' type=0 removable=0 virtio-scsi blksize=512 sectors=20971520 = 10240 MiB drive 0x000f2330: PCHS=0/0/0 translation=lba LCHS=1024/255/63 s=20971520 Booting from Hard Disk 0... [ 0.000000] Initializing cgroup subsys cpuset [ 0.000000] Initializing cgroup subsys cpu [ 0.000000] Initializing cgroup subsys cpuacct [ 0.000000] Linux version 3.16.0-0.bpo.4-amd

  • 确认是否存在防火墙规则,该规则允许端口22上的入口流量:

    $ gcloud computing firewall-rules list-项目名称
    允许名称网络方向优先
    默认allow-ssh默认INGRESS 65534 tcp:22

  • 上方的 输出中,允许SSH流量的防火墙规则具有优先级65534
    优先级是0到65535之间的整数(包括两者)。
    较低的优先级值意味着较高的优先级。
    换句话说,1比2高。
    您可以阅读 this document 以获取更多说明

    更新防火墙规则以设置更高的优先级。
    为此,请运行命令:
    $ gcloud compute firewall-rules update --priority 1000 default-allow-ssh

    问题:我尝试通过SSH进入实例,但仍然遇到相同的旧错误:ssh:连接到主机X.XX.XX.XX端口22:操作超时错误:(gcloud.compute.ssh)[/ usr / bin / ssh]退出,返回码为[255]

    检查 ssh服务是否在
    实例中运行
    运行以下命令以获取实例的IP:
    $ gcloud compute instances describe [NAME_OF_YOUR_INSTANCE] --format='get(networkInterfaces[0].accessConfigs[0].natIP)' 

    安装netcat =>是一种用于读取/写入网络连接的计算机网络实用程序:
    $ sudo apt-get install netcat

    运行以下命令以检查命令的输出:
    $ nc [EXTERNAL_IP] 22 
    >

    问题:运行nc [EXTERNAL_IP]不返回任何内容

    如果您的实例中启用了 Linux Guest Environment ,请检查
    为此,您应该在GCE实例上添加启动脚本。
    要将启动脚本添加到实例:
  • 单击实例名称
  • 点击编辑
  • 转到“自定义元数据”部分
  • 在“键”文本字段中添加:startup-script
  • 在“值”文本字段中添加:#! /bin/bash sudo systemctl list-unit-files | grep google | grep enabled
  • 保存更改

  • More detailed info on startup scripts也可用。

    然后重新启动实例,以允许脚本执行。
    验证是否已安装Linux guest虚拟机环境脚本并正在运行
    为此,请在GCE实例中在串行日志控制台中检查启动脚本的输出。
    您可以检查the expected outputs for the different Operating Systems

    如果未安装Linux Guest Environment,请重新安装它
    您可以按照this documentation来安装LGE。

    关于ssh - 无法使用GCloud Compute访问VM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49001519/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com