方法是把你的 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:
- http://blog.longwin.com.tw/2005/12/ssh_keygen_no_passwd/
- http://blog.longwin.com.tw/2011/04/ssh-failure-sign-key-2011/
沒有留言:
張貼留言