在我的行動裝置和 Raspberry Pi(剛好分別是 AArch 和 ARM CPU)上,預設ssh-agent
不會載入。
我必須先啟動ssh-agent
:
eval `ssh-agent -s`
然後我繼續將密鑰新增至代理:
ssh-add /home/jimjamz/.ssh/myKey
系統提示我輸入密碼並輸入它。然後將密鑰新增至代理程式:
Enter passphrase for /home/jimjamz/.ssh/myKey:
Identity added: /home/jimjamz/.ssh/myKey (/home/jimjamz/.ssh/myKey)
然後我可以連接到我的遠端伺服器,而無需再次指定我的密鑰。
為了方便起見,我想將上述內容新增到啟動代理程式並新增金鑰的腳本:
#!/bin/bash
eval `ssh-agent -s`
ssh-add /home/jimjamz/.ssh/myKey
當我運行腳本時,我可以看到代理程式已啟動,並且系統提示我輸入私鑰的密碼。我輸入正確,並且密鑰已添加到代理中。
但是,當我嘗試 ssh 到遠端伺服器時,我看到以下內容:
Permission denied (publickey).
問題似乎是ssh-add
在我的 bash 腳本中呼叫。如果我ssh-add
在腳本外部手動調用,然後嘗試 ssh 到遠端伺服器,我就可以連接。
ssh-add
如果在 bash 腳本中調用,為什麼它無法識別該密鑰已添加?
如果我在另一台電腦上執行 bash 腳本(預設已載入 ssh-agent),則可以成功使用腳本中新增的金鑰來 ssh 到遠端伺服器。它似乎不適用於預設情況下 ssh-agent 未自動運行的設備。