2013年4月5日 星期五

[note] ssh public key authentication

測試環境的機器太多,開始厭倦每次都要打密碼了...

先找一台最常用的機器產生 rsa key pair

ssh-keygen -t rsa

回答完問題後 ~/.ssh/ 目錄下就會有 id_rsa 和 id_rsa.pub
(千萬要保護好 id_rsa key!!)

把 id_rsa.pub 的內容放進想要可以用 public key authentication 登入的機器上

scp id_rsa.pub to target client.
cat id_rsa.pub >> .ssh/authorized_keys

最常卡住的原因是:
1. target 機器連 scp 都沒有, =>  裝 openssh-clients
2. target 機器的 .ssh folder 和 authorized_keys 的權限 => chmod 400 and 600
3. selinux 不允許 sshd 去讀取 authorized_keys => 做完步驟2後 restorecon -R -v .ssh
4. authorized_keys 名字打錯 => 把手砍掉 確認檔名有沒有打錯字

如果要讓 windows putty 也可以用 id_rsa 來登入已經放好對應 authorized_keys 的 target client, 就需要用 puttygen -> import key (id_rsa) -> 另存 ppk 檔 (千萬要保護好這把ppk!!)

另外 TortoiseGit 會吃 putty default 設定的 private key for authentication, 所以記得讓 putty default 設定的 private key 保持清空,真的有需要的話請用 pagent 來管理多把不同的 private key.