涂紳騰(Shen-Teng Tu)   ·  4年前
1 貼文  ·  0 留言

PuTTY及Raspberry Pi設定SSH agent forwarding

此篇筆記已公開於HackMD@ShenTengTu/rkwtDACU8

PuTTY及Raspberry Pi設定SSH agent forwarding

目標:Windows本地端使用PuTTY以SSH驗證的方式登入Raspberry Pi,並設定SSH agent forwarding,讓Raspberry Pi能轉發本地端SSH金鑰到第三方SSH Server(如 GitHub)進行SSH驗證。

PuTTY設定

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必須設置

  • SSH > Auth > 啟用"Allow agent forwarding"
  • 不需額外設定私鑰路徑

可以將PuTTY安裝路徑加到PATH環境變數,然後建立包含以下腳本的批次檔pageant-session.bat

start pageant "%USERPROFILE%\.ssh\your.ppk" -c putty -load %1

然後執行./pageant-session.bat "your_ssh_ession"

Raspberry Pi設定

  • 將SSH公鑰內容加入到~/.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.

參考

  分享   共 1,989 次點閱
按了喜歡:
共有 1 則留言
尤川豪   ·  4年前
445 貼文  ·  275 留言

謝謝加入筆記&分享的行列!這些都會對後人很有幫助!👍

 
您的留言