Windows-Server-2008

將 SSH 主機密鑰添加到另一個使用者的 PuTTY 記憶體

  • March 29, 2018

我編寫了一個 PS1 腳本,它對文件進行 7 壓縮並使用 PuTTY 的 SCP 將其儲存在我的備份伺服器上。我已經對其進行了測試,並且效果很好。

然後我登錄到我的 SQL Server 代理並在我的備份作業中添加一個額外的步驟,以便在它完成備份作業後立即執行該腳本。它被正確呼叫,.7z 文件被創建,並且 pscp.exe 被呼叫……並停止。我去 SQL Server Agent 的 Job Activity Monitor 並找到這個:

Message
The server's host key is not cached in the registry. You
have no guarantee that the server is the computer you
think it is.
The server's rsa2 key fingerprint is:
ssh-rsa 2048 b5:f8:d2:5f:be:90:b6:be:15:d3:26:d5:c6:42:59:05
If you trust this host, enter "y" to add the key to
PuTTY's cache and carry on connecting.
If you want to carry on connecting just once, without
adding the key to the cache, enter "n".
If you do not trust this host, press Return to abandon the
connection.
Store key in cache? (y/n)

現在這是一個非互動式會話,所以我沒有機會在那裡按“y”。最重要的是,我不知道這個作業是在哪個使用者上執行的,即使我知道,我也不知道這個記憶體在哪裡。現在怎麼辦?

你可以做類似的事情

echo n | pscp file.7z user@remote.tld:/path

這允許複製繼續進行,而無需將密鑰指紋儲存在系統資料庫中。或者,您可以

echo y | pscp file.7z user@remote.tld:/path

這將接受問題並將密鑰指紋添加給使用者HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys

在本地會話中添加 SSH 指紋後,您還可以訪問系統資料庫

HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys

並將密鑰複製給其他使用者,例如

HKEY_USERS\.DEFAULT\Software\SimonTatham\PuTTY\SshHostKeys

本地系統使用者

HKEY_USERS\S-1-5-18\Software\SimonTatham\PuTTY\SshHostKeys

引用自:https://serverfault.com/questions/360327