首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试将ssh插入Google平台VM时出错

问尝试将ssh插入Google平台VM时出错
EN

Stack Overflow用户
提问于 2020-05-05 08:36:30
回答 1查看 2.2K关注 0票数 1

我一直在使用VSCode的远程ssh访问运行在谷歌云上的虚拟机。直到我对最近的实例做了一个快照,并在更大的VM上用它创建了一个新实例之前,它一直运行得很好。现在,当我尝试连接(通过任何方法)时,我会得到:“许可被拒绝(公开密钥)”。我花了无数个小时删除和重新添加,并重新创建我的ssh密钥,但没有任何效果。在我简单地运行"gcloud计算config-ssh“并创建一个工作配置文件之前,现在这是可行的。请帮帮忙,我什么都试过了,根本没有办法。在网站上,我可以点击ssh按钮打开他们的外壳,但不能从我的终端中打开。

EN

回答 1

Stack Overflow用户

发布于 2020-10-11 23:15:28

该问题可能与在VSCode连接期间缺乏对SSH私钥的标识有关。您可以指示您的私钥添加指向SSH私钥的IdentityFile选项,这在SSH配置文件中的SSH连接主机条目中:

代码语言:javascript
复制
Host vm_name
        HostName external_ip
        IdentityFile /path/to/ssh_private_key
        Port port_number

如果你或某人需要更多的信息,那就给你长话短说吧。

您可以从一开始就确保您没有损害您的SSH密钥,这是问题的根源。

创建SSH密钥

首先,创建新的ssh keys.In --用于访问远程主机的计算机,即Google实例,打开终端或cmd,然后转到ssh文件夹生成密钥。

我的ssh配置和键位于我的用户目录下,即Linux或C:\Users\my_user\.ssh on Windows上的C:\Users\my_user\.ssh on Windows。

I将cd到这些路径中的一条,取决于我目前使用的是哪条路径。

Linux:

代码语言:javascript
复制
cd /home/my_user/.ssh

Windows:

代码语言:javascript
复制
cd C:\Users\my_user\.ssh

命令生成SSH密钥

代码语言:javascript
复制
ssh-keygen -t rsa -f my_ssh_key -C user

my_ssh_key:您的密钥名,您可以将您想要的东西更好地识别

用户:必须是您希望在Google实例上连接的用户。

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

或者,待在操作系统的任何位置并通过生成键的绝对路径:

Linux:

代码语言:javascript
复制
ssh-keygen -t rsa -f /home/my_user/.ssh/my_ssh_key -C user

Windows:

代码语言:javascript
复制
ssh-keygen -t rsa -f C:\Users\my_user\.ssh\my_ssh_key -C user

在Google authorized_keys文件中复制公钥

代码语言:javascript
复制
/home/my_user/.ssh/authorized_keys

**不要重写添加在authorized_keys文件中的任何已存在的公钥。

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

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

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

Linux:

代码语言:javascript
复制
/home/my_user/.ssh/config

Windows:

代码语言:javascript
复制
C:\Users\my_user\.ssh\config

若要添加另一个主机,请编写以下适当更改:

代码语言:javascript
复制
Host vm_name
    HostName external_ip
    IdentityFile /path/to/ssh_private_key
    Port port_number

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

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

IdentityFile:用于yout私有SSH键的路径,您生成的文件具有.pub扩展名。Linux:

代码语言:javascript
复制
/home/my_user/.ssh/my_ssh_key

Windows:

代码语言:javascript
复制
C:\Users\my_user\.ssh\my_ssh_key

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

现在只需选择这个主机来连接到Google实例。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61609035

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档