2014年5月5日 星期一

ssh no password

就是連線A server 時,不需要輸入 password.

方法是把你的 public key 先送給 A server,告訴他用這個 public key 來驗證你將來 ssh client 給的key.
驗證 OK 就代表是真正的你在要求連線。就不用輸入password


首先,先產生自己的key, 會有一對,private, public:
$ssh-keygen -t rsa

都直接回 return 的話,會產生兩個 file 在 .ssh 中:
  • id_rsa : private
  • id_rsa.pub : public

然後把 pub key 送到 A server 去:
 $scp .ssh/id_rsa.pub a_server:~


最後,就是到 A server 去,把這個 public key 加到 authorized_keys:
 $cat id_rsa.pub >> .ssh/autorized_keys


* 要注意,cat key 出來看,可以看到最後是 username/servername

這個跟跟連線時的 username/servername 要對應。
-- 在 hosts 是自己亂寫的時候,要特別注意。

debian 的話,自己的機器在 ssh-keygen 完,產生 id_rsa pair 後,還要下
 $ ssh-add
Identity added: /home/charles-chang/.ssh/id_rsa (/home/charles-chang/.ssh/id_rsa)


否則 ssh A server 時,會出現:
Agent admitted failure to sign using the key.


ref: