我们如何使用Mac终端上生成的公钥从Mac终端SSH到Google Cloud VM?

时间:2019-03-18 17:46:19

标签: ssh google-cloud-platform

我们想使用从Mac终端在VM上生成的公共密钥连接到Google Cloud VM。但是我们看到以下错误

konathal:.ssh konathal$ ssh -i ~/.ssh/runnhostkey1.pub suren@1.2.3.4

Load key "/Users/konathal/.ssh/runnhostkey1.pub": invalid format
suren@1.2.3.4: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

我们做了什么?

按照https://cloud.google.com/compute/docs/instances/adding-removing-ssh-keys#createsshkeys上的文档

1。我们在Google Cloud VM上创建了一个新的公钥,

~/.ssh/runnhostkey1
~/.ssh/runnhostkey1.pub 

2。将公钥runnhostkey1.pub的内容添加到VM> Edit> SSH Keys

3。在本地mac中创建一个新文件并复制公钥的内容

$ vi ~/.ssh/runnhostkey1.pub
$ chmod 400 ~/.ssh/runnhostkey1.pub

我们无法使用$ ssh -i ~/.ssh/runnhostkey1.pub suren@1.2.3.4

连接到VM

我们缺少什么?

2 个答案:

答案 0 :(得分:1)

我们找到了问题和解决方案:

1)密钥(公共和私有)文件的所有者和组应归于用于生成密钥的用户所有。在我们的情况下,我们以 root 身份登录,但是使用用户 suren 创建了密钥。

解决方案

ssh-keygen -t rsa -f ~/.ssh/runnkey -C suren,但我们以root的身份登录运行,因此文件的所有者为root。快速解决方案是更改所有权

chown suren:suren ~/.ssh/runnkeychown suren:suren ~/.ssh/runnkey.pub

2)将公共密钥添加到 /。ssh / authorized_keys

示例cat ~/.ssh/runnkey.pub >> ~/.ssh/authorized_keys

3)更改文件权限

 chmod 0700 /.ssh/authorised_keys
 chmod 0600 /.ssh/runnkey
 chmod 0600 /.ssh/runnkey

4)将密钥添加到VM实例。计算引擎>虚拟机实例> [您要访问的虚拟机]>编辑> SSH密钥。复制公共密钥的文本(vi ~/.ssh/runnkey.pub副本)并在此处添加粘贴。保存。

5)在本地Mac的runnkey文件夹下创建文件runnkey.pub/.ssh,并从服务器上的相应文件中复制内容。

示例测试命令:

ssh -i ~/.ssh/runnkey.pub suren@1.2.3.4
scp -i ~/.ssh/runnkey.pub /Downloads/ship.png suren@1.2.3.4:/home/temp

document下的连接用户的$ HOME或$ HOME / .ssh目录上的权限是错误的。

答案 1 :(得分:0)

您不能使用公钥通过SSH连接。您必须使用私钥。

VM使用公钥来验证您的连接授权。

您的私钥很可能是:~/.ssh/runnhostkey1