Devs.tw 是讓工程師寫筆記、網誌的平台。歡迎您隨手紀錄、寫作,方便日後搜尋!
此篇筆記已公開於HackMD:@ShenTengTu/rkwtDACU8
目標:Windows本地端使用PuTTY以SSH驗證的方式登入Raspberry Pi,並設定SSH agent forwarding,讓Raspberry Pi能轉發本地端SSH金鑰到第三方SSH Server(如 GitHub)進行SSH驗證。
PuTTY的SSH agent為pageant.exe
,是擁有GUI介面的SSH agent,要啟用代理轉發,要先啟動Pageant。跟Linux的ssh-agent
類似,必須先將*.ppk
私鑰加入到Pageant,它會詢問passphrase,並在驗證成功後將金鑰暫時保留在記憶體中。
使用命令列來執行pageant.exe
自動加載密鑰。
C:\PuTTY\pageant.exe d:\main.ppk d:\secondary.ppk
使用命令列來執行pageant.exe
自動加載密鑰後,運行另一個程序。
C:\PuTTY\pageant.exe d:\main.ppk -c C:\PuTTY\putty.exe
而PuTTY SSH session必須設置
可以將PuTTY安裝路徑加到PATH
環境變數,然後建立包含以下腳本的批次檔pageant-session.bat
。
start pageant "%USERPROFILE%\.ssh\your.ppk" -c putty -load %1
然後執行./pageant-session.bat "your_ssh_ession"
。
~/.ssh/authorized_keys
/etc/ssh/ssh_config
設定
Host *
ForwardAgent yes
...
/etc/ssh/sshd_config
設定
...
PubkeyAuthentication yes
AllowAgentForwarding yes
...
在PuTTY SSH session下的Raspberry Pi終端:
$ echo $SSH_AUTH_SOCK
/tmp/ssh-NIEDeNTuAQ/agent.2161
$ ssh -T [email protected]
agent key xxxx returned incorrect signature type
Hi <UserID>! You've successfully authenticated, but GitHub does not provide shell access.
謝謝加入筆記&分享的行列!這些都會對後人很有幫助!👍