這篇教你如何不需密碼就可登入Client,一般我們的Client多半使用Linux系統。
我們打開terminal的ssh登入該主機。
$ ssh example@111.222.333.444
在家目錄生成你的ssh key
$ ssh-keygen
在產生金鑰的過程中,會詢問一些問題,對於一般的使用者而言,全部都使用預設值(直接按下 Enter 鍵)即可。
Enter file in which to save the key (/home/example/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
最後看到這個畫面就代表你的key已經製作完成
The key fingerprint is:
94:f4:44:2a:xx:xx:ba:c4:29:01:0e:43:f8:82:0f:71 example@xxxxx-xxxx
The key's randomart image is:
+--[ RSA 2048]----+
| o+ oo+.+ . |
|. E = . O + |
| + . o = * |
|o . . o o . |
| o . S . |
| . |
| |
| |
| |
+-----------------+
接下來我們切換到 .ssh
的目錄來製作登入免密碼的機關
$ cd .ssh/
如果輸入 ls
有看到id_rsa
以及 id_rsa.pub
兩隻key就是正確的
接下來把自己本機電腦的id_rsa.pub打開(如果沒有的話,請照前面的步驟在自己的電腦做一次 ssh-keygen就會有了)
大概會長這樣請先把他複製起來
ssh-rsa AAAAB3NzaC1yc2EAAAADAQAewewewedLB/qIyhMC20FSr9lwpTE8w+xQ35HW+GEdZgFPn3VK4Az6TszBcfKVdhHMRVfbRDCAJIQXhYlvkPewewPbEseuaPEA7UPCRHeaM0lfmy+aXWpBVkliAqHbPHX7gx1eMiAJ4gbqzUg+5i/JwNOSoclZcBsIOiJUJ228zF+180LvNkREpcCgaQd2DPxBNd4LITNflNBNNwzIq1SvHgQCbyMBtIvMzYOrowI1ApmVqUTw+5lHRqWTF32sSYB/q6dvA6frEhIYvsbnt41jOT47Z7TrsYABsvbX1XIiDTLj3iZ4kiVU/xXapFPe5H73JtqsUNmEk2dNrnmOEumnBX+6Ko5T Nic@Nics-MacBookPro.local
然後到你的遠端機器上建立一個清單
$ vi .ssh/authorized_keys
將剛剛複製的公鑰直接貼進去
這樣就完成免密碼登入了!
試試看再次登入遠端機器是否不用密碼了
原理解說
id_rsa: private key id_rsa.pub: public key 將 public key(id_rsa.pub) 拷貝到遠端的電腦後, 加到那 user 的 .ssh/authorized_keys 中.
之後連線時, 就會用本機的 private key(id_rsa) 與遠端電腦的 public key(authorized_keys) 做認證, 確認完成就可以直接登入, 不需輸入帳號密碼, 而且也比較安全.