![](/img/trans.png)
[英]Error Public Key when trying to ssh into Google Cloud Platform 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/runnkey
和chown 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上創建文件runnkey
和runnkey.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.