2013年9月15日 星期日

「筆記」利用 keychain 免除每次用 SSH 需重複輸入密碼



由於哥哥的雙核電腦退役給我用(我的是單核的 K8),想在兩台電腦都裝上 Linux,一台當儲存資料的伺服器(單核),另一台當日常生活所用的作系統。不管是那個版本的 Linux,都可以用 SSH 維護跟管理。



其中在產生密鑰過程中,很多人都為了方便而沒有設簡短的密碼,這樣安全上會有很大的問題,別人拿到你的私鑰很輕易的就可以控制你遠端的電腦,這點千萬不可以輕乎。



這裡記錄 SSH 密鑰產生與應用 keychain 管理密鑰,文章尾端的連結有比較完整的介紹。


2013-09-06 補上Arch的相關設定與一些錯誤







安裝所需套件


Server 端(被控)安裝 openssh-server,Client 端(遙控)安裝 keychain。前者是讓別人透過 SSH 連入你的電腦,後者是用來管理 SSH 金鑰。




For Arch


sudo pacman -S openssh keychain




For Ubuntu


sudo aptitude install openssh-server keychain




產生 SSH 密鑰傳到遠端主機


1、產生密鑰一把為私鑰 id_dsa 一把為公鑰 id_dsa.pub,之後需要把公鑰傳到 Server 端。




For Arch


ssh-keygen -t dsa


For Ubuntu


ssh-keygen -d



產生密鑰第一個按(Enter),接著問你要不要設簡短密碼,需輸入兩次相同密碼,確認密碼是否正確。



2、把公鑰傳到 Server  端,第一次用會問你要連接嗎 yes,再來輸入使用者的密碼,不是簡短密碼哦。



ssh-copy-id -i ~/.ssh/id_dsa.pub xxx@xxx.xxx.xxx.xxx

xxx@xxx.xxx.xxx.xxx:Server端的帳號@IP



3、現在用 SSH 登入後出現 「Enter passphrase for key '/home/username/.ssh/id_dsa」,請輸入簡短密碼。

ssh xxx@xxx.xxx.xxx.xxx



keychain 免除每次重複輸入密碼

1、請在 ~/.bashrc 或 ~/.zshrc 尾端貼上程式碼,這是參考 c9s 所寫的使用 keychain 管理 ssh 金鑰



loadkeys() 
{
[ -z "$HOSTNAME" ] && HOSTNAME=`uname -n`
/usr/bin/keychain ~/.ssh/id_dsa
[[ -f $HOME/.keychain/$HOSTNAME-sh ]] && source $HOME/.keychain/$HOSTNAME-sh
}



2、立即讓程式碼產生作用,新開的終端可免除此步驟。

source ~/.bashrc



3、第一次或重新開機後都需要直行一次 loadkeys ,過程中如你有設簡短密碼請在Enter passphrase 出現時輸入你的簡短密碼>按Enter,無密碼直接按Enter

loadkeys

* keychain 2.7.1 ~ http://www.funtoo.org

* Inheriting ssh-agent (1426)

* Inheriting gpg-agent (1423)

* Adding 1 ssh key(s): /home/username/.ssh/id_rsa

Enter passphrase for /home/username/.ssh/id_rsa:

* ssh-add: Identities added: /home/username/.ssh/id_rsa



4、現在立即登入就不用密碼了



ssh xxx@xxx.xxx.xxx.xxx




沒有留言:

張貼留言