Windows-Server-2008
將 SSH 主機密鑰添加到另一個使用者的 PuTTY 記憶體
我編寫了一個 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