2016年2月5日 星期五

ssh免密碼登入

為了安全性,我們使用ssh key 登入

使用ssh key登入有兩個方式
1. 使用本機id_rsaid_rsa.pub => 該組key有在server上認證(在.ssh/authorized_keys的清單中)過,
2. 使用server的id_rsa  => aws的作法:登入aws後台後,下載server上的id_rsa
請將key放到隨身碟,不要上傳到網路,要傳上網路請放到有雙因素認證的地方(輸入簡訊驗證碼和密碼兩種以上才能登入)

ssh-keygen的演算法用ecdsa還是rsa?
產生ecdsa的key
$ ssh-keygen -t ecdsa
密碼強度非常高也很難破解,改用橢圓曲線的話 ssl handshake 速度會加 , 加解密也會快一點
產生rsa的key
$ ssh-keygen -t rsa
PuTTY Key Generator( puttygen.exe )匯入private key時,演算法只能選rsa因為putty 不是 openssh,只是一個 ssh client
為了在windows使用putty,所以還是選擇RSA

使用server的id_rsa
(在Server上)
$ ssh-keygen -t rsa => 產生出 id_rsa, id_rsa.pub
$ cat .ssh/id_rsa.pub >> .ssh/authorized_keys => 遺漏在下一步 $ ssh -i private.key user@server_ip時會出現錯誤:Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
將id_rsa存到Win 7本機命名為private.key,然後使用cygwin
$ ssh -i private.key user@server_ip
或是使用puttygen.exe 產生Private Key( ppk 檔)後使用putty連線

使用id_rsa產生ppk
puttygen.exe => Load (id_rsa檔案) => Save private key
puttygen.exe 到 https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html 下载

使用本機的id_rsa和id_rsa.pub
(在本機)
$ ssh-keygen -t rsa
$ ssh-copy-id -i id_rsa.pub server_ip =>這步驟server必須開啟密碼登入,設定完再關閉

要關閉使用密碼登入, 只允許使用 Key 來做登入,請修改這兩個參數
# vim /etc/ssh/sshd_config
PubkeyAuthentication yes
PasswordAuthentication no
# service sshd restart

參考資料:
https://blog.longwin.com.tw/2005/12/ssh_keygen_no_passwd/  ssh keygen 免輸入密碼
https://blog.cloudflare.com/ecdsa-the-digital-signature-algorithm-of-a-better-internet/  ECDSA: The digital signature algorithm of a better internet
https://www.jianshu.com/p/d6c45729f7d0  私钥文件id_rsa转换成putty的ppk格式


沒有留言:

張貼留言