繁体   English   中英

尝试 ssh 进入 Google Cloud Platform VM 时出现错误公钥

[英]Error Public Key when trying to ssh into Google Cloud Platform VM

我一直在使用 VSCode 的 remote-ssh 来访问我在谷歌云上运行的虚拟机。 这一直工作得很好,直到我为我最近的实例制作了一个快照,并在一个更大的虚拟机上创建了一个新实例。 现在,当我尝试连接(通过任何方法)时,我得到:“权限被拒绝(公钥)”。 我花了无数小时删除和重新添加,并重新创建我的 ssh 密钥无济于事。 在我简单地运行“gcloud compute config-ssh”之前,它创建了一个工作配置文件,但现在它可以工作了。 请帮助,我已经尝试了所有方法,但我根本无法访问 ssh。在网站上,我可以单击 ssh 按钮打开他们的 shell,但无法从我的终端执行此操作

问题可能与VSCode连接时没有识别到你的SSH私钥有关。 您可以指示您的私钥添加指向您的 SSH 私钥的 IdentityFile 选项,这在您的 SSH 连接主机条目中的 SSH 配置文件中:

Host vm_name
        HostName external_ip
        IdentityFile /path/to/ssh_private_key
        Port port_number

如果您或某人需要更多信息,请在这里说来话长。

您可以从一开始就输入 go 以确保您不会泄露 SSH 密钥,这就是问题的根源。

创建 SSH 密钥

首先,创建新的 ssh 密钥。在您将用于访问远程主机(即 Google VM 实例)的计算机中,打开您的终端或 cmd 和 go 到 ssh 文件夹以生成密钥。

我的 ssh 配置和密钥在我的用户目录下, /home/my_user/.ssh on Linux 或C:\Users\my_user\.ssh on Windows

我将 cd 到这些路径之一,具体取决于我目前使用的路径。

Linux:

cd /home/my_user/.ssh

Windows:

cd C:\Users\my_user\.ssh

生成SSH密钥的命令

ssh-keygen -t rsa -f my_ssh_key -C user

my_ssh_key : 你的key的名字,你可以放你想更好识别的

user :必须是您要用于连接 Google VM 实例的用户。

这将生成一个名为my_ssh_key的私钥和一个名为my_ssh_key.pub的公钥。

或者,留在操作系统的任何位置并传递生成密钥的绝对路径:

Linux:

ssh-keygen -t rsa -f /home/my_user/.ssh/my_ssh_key -C user

Windows:

ssh-keygen -t rsa -f C:\Users\my_user\.ssh\my_ssh_key -C user

将公钥复制到您的 Google 云 VM authorized_keys 文件中

/home/my_user/.ssh/authorized_keys

** 不要重写authorized_keys文件中已经存在的任何公钥 jus append。

为远程连接添加新的 ssh 主机条目

单击 VS Code 右下角的Remote SSH manager图标,单击Remote SSH: Open Configuration File选项并选择您的 ssh 配置文件以添加另一个用于远程连接的 SSH 条目。

配置文件必须在 SSH 目录下,与生成 SSH 密钥步骤中使用的路径相同。

Linux:

/home/my_user/.ssh/config

Windows:

C:\Users\my_user\.ssh\config

要添加另一个主机,请编写以下内容进行适当的更改:

Host vm_name
    HostName external_ip
    IdentityFile /path/to/ssh_private_key
    Port port_number

vm_name :是以实际方式连接 ssh 命令的别名,可能是你想要的。

external_ip :您的 Google VM 实例的外部,您可以在https://console.cloud.google.com/的 VM 实例面板中获取

IdentityFile :您的私有 SSH 密钥的路径,您生成的该注释的文件具有 .pub 扩展名。 Linux:

/home/my_user/.ssh/my_ssh_key

Windows:

C:\Users\my_user\.ssh\my_ssh_key

端口:您的Google VM实例的SSH的por号,22是默认端口。

现在只需选择此主机即可连接到您的 Google VM 实例。

有关谷歌云平台 SSH 设置的更多详细信息: https://cloud.google.com/compute/docs/instances/adding-removing-ssh-keys#linux-and-macos_1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM