我已經安裝了 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
,ssh
或git
從任何終端(例如CMD、Bash、PowerShell 等)使用,而無需任何配置。
答案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