簡體   English   中英

我們如何使用在Mac終端上生成的公共密鑰從SSH SSH到Google Cloud VM?

[英]How can we SSH to a Google Cloud VM from Mac terminal using public key generated on the VM?

我們想使用從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連接到$ ssh -i ~/.ssh/runnhostkey1.pub suren@1.2.3.4

我們缺少什么?

我們找到了問題和解決方案:

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/authorised_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)在/.ssh文件夾下的本地Mac上創建文件runnkeyrunnkey.pub ,並從服務器上的相應文件復制內容。

示例測試命令:

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

上面的1,2,3在文檔 “連接用戶的$ HOME或$ HOME / .ssh目錄的權限”部分下提到

您不能使用公鑰通過SSH連接。 您必須使用私鑰。

VM使用公鑰來驗證您的連接授權。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM