問題描述
在 PowerShell 中重用正在運行的 PuTTY 代理(選美) (Reuse in PowerShell a running PuTTY agent (pageant))
PS 5.1 中有沒有辦法重用 PuTTY 代理密鑰?
現在,詳細信息。
要使用密鑰代理,需要有一個 代理 持有密鑰(左框)和 Client 委託管理密鑰的應用程序(右框)。例如,客戶端應用程序 C1=putty
當然可以使用它自己的代理 A1=pageant
。客戶端應用 C2=winscp
知道如何直接使用 A1。
某些客戶不能直接使用某些代理,但有一些代理可以彌補這一差距。例如,要將 A1 與 C3 一起使用,我需要 Proxy P1=ssh‑pageant
,請參見下面的示例。這有助於將多個客戶端的密鑰集中在單個代理中。現在我的意思是為我的所有客戶端使用 A1(目前,只缺少 A1‑C5 和 A1‑C6)。
PS 5.1 中有沒有辦法重用相同的 PuTTY 代理密鑰? (即,使用 A1 和 C5 的代理 Px)
可能有幫助:https://superuser.com/a/1173570/245595
注意事項:
我沒試過,/code> 是
weasel‑pageant
的一個分支,包括支持使用 Microsoft 的 SSH 代理服務持有的密鑰(而不是 PuTTY Pageant)(A2‑C7...我想這很了不起WSL 需要代理才能使用 Win OpenSSH 代理)。
如何使用“代理”的示例;代理 ssh‑pageant
將 PuTTY 選美與 Cygwin bash 鏈接
實現此目的的步驟是:
- 當我開始我的在 Windows 會話中,便攜式 PuTTY 代理 (
pageant
) 被執行,同時一鍵加載。為此,在C 中添加了一個快捷方式
,指向pageant
:\Users\USER1\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup%myputty%\pageant.exe "%mykeys%\key1.ppk"
. 這使得PuTTY 和WinSCP 可以使用密鑰,例如但是如果我現在進入PS 會話或msys2/cygwin 終端,則不會使用密鑰,並且會要求我輸入密鑰的密碼。所以如果我現在
> cd <dir where ssh‑pageant is>
> .\ssh‑pageant ‑r ‑a "$env:USERPROFILE\tmp\.ssh‑pageant‑$env:USERNAME"
SSH_AUTH_SOCK='C:\Users\USER1\tmp\.ssh‑pageant‑USER1'; export SSH_AUTH_SOCK;
SSH_PAGEANT_PID=714; export SSH_PAGEANT_PID;
echo ssh‑pageant pid 714;
> $env:SSH_AUTH_SOCK='C:\Users\USER1\tmp\.ssh‑pageant‑USER1'
> $env:SSH_PAGEANT_PID=714
> ssh myserver
Enter passphrase for key 'C:\Users\USER1/.ssh/id_rsa':
- 在msys2/cygwin中我可以使用
ssh‑pageant
(“用於 Cygwin/MSYS 的 SSH 身份驗證代理,將 OpenSSH 鏈接到 PuTTY 的 Pageant”),這樣它就可以重用之前加載的任何密鑰膩子代理有。 為此,我只是將eval $(/usr/bin/ssh‑pageant ‑r ‑a "/tmp/.ssh‑pageant‑$USERNAME")
添加到我的~/.bashrc</ msys2的代碼>。現在每當我啟動一個 msys2 終端時,鏈接 PuTTY's Pageant ‑> 建立ssh‑pageant,創建幾個環境變量,不用輸入密碼就可以
ssh
$ ssh myserver
Enter passphrase for key 'C:\Users\USER1/.ssh/id_rsa':
- 從this來看,Git bash似乎也可以實現。
相關:
sancho.s ReinstateMonicaCellio、sancho.s ReinstateMonicaCellio)
參考文件