Windows 7 中的 openssh,為所有 cmd 實例執行 ssh-add 一次

Windows 7 中的 openssh,為所有 cmd 實例執行 ssh-add 一次

我已經安裝了 openSSH 作為最新 cygwin 發行版的一部分。我的目標是從本機視窗控制台 (cmd) 使用 ssh-agent 以便在各種數量的 Linux 電腦中無密碼登入。

我已經產生了密鑰並將它們上傳到遠端主機中的適當目錄,一切正常。

我遇到的唯一問題是,每次打開新的 cmd 時,我都必須運行“ssh-add”,輸入密碼,然後我就可以在遠端主機中無密碼登入。有辦法解決這個問題嗎?理想的解決方案是僅執行 ssh-add 一次。

僅供參考:我打開 cmd 作為 ssh-agent 的參數:'ssh-agent cmd'

答案1

我實際上創建了一個名為“ssh-agent-helper”的工具,它可以調用ssh-agent並使其在全球範圍內可用,這樣,您就可以使用ssh-add,sshgit從任何終端(例如CMD、Bash、PowerShell 等)使用,而無需任何配置。

你可以在這裡找到它:https://github.com/raeesbhatti/ssh-agent-helper

答案2

您將無法從本機命令視窗執行 ssh。您需要執行 Cygwin bash「視窗」才能執行任何 Cygwin 二進位。

話雖如此,在 Cygwin bash「視窗」中,您需要將 ssh-agent 的輸出儲存到檔案中,然後將該檔案來源到您想要使用快取憑證的任何登入腳本中。在第一個「視窗」中,運行:

$ ssh-agent >your_save_file     # Starts ssh-agent, saves shell variables
$ . your_save_file              # Loads saved shell variables into current shell
$ ssh-add                       # Adds keys into ssh-agent

在其他每個中,運行:

$ . your_save_file

執行該命令後啟動的所有「windows」和子程序都. your_save_file將能夠使用 ssh-agent 中快取的憑證。每當 ssh-agent 停止或終止,或系統重新啟動後,您都需要再次執行第一組命令。如果您不確定快取的憑證在特定 shell 中是否可用,請執行

$ ssh-add -l            # Show list of loaded keys in ssh-agent

相關內容