透過 Bash 腳本將金鑰新增至 SSH-Agent 時,“權限被拒絕(公鑰)”

透過 Bash 腳本將金鑰新增至 SSH-Agent 時,“權限被拒絕(公鑰)”

在我的行動裝置和 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 未自動運行的設備。

相關內容