服務器環境:阿里雲雲服務器,Linux版本 - CentOS
客戶端環境:Mac OSX Terminal
在Terminal中用ssh命令登錄服務器每次都要輸入密碼,雖然可以復制/粘貼密碼,但登錄后一段時間不操作,服務器會自動斷開連接,連接時又要復制/粘貼密碼,還是有些不方便。
有沒有辦法實現登錄時不用輸入密碼呢?有辦法,這篇博文分享的就是解決方法。
不輸入密碼,服務器如何驗證客戶端呢?通過證書,證書就像你進辦公室門時的門卡。客戶端登錄時,拿門卡(證書)在服務器上刷一下(證書驗證),服務器會檢查這張門卡能不能開門。
那如何制作門卡,如何把門卡信息告訴服務器呢?用下面的操作步驟來回答這個問題。
1. 打開你放門卡的皮夾
cd ~/.ssh/
如果沒有皮夾,去買一個:
mkdir ~/.ssh
2. 制作門卡
ssh-keygen -t rsa
默認門卡文件名:id_rsa.pub
3. 后來才知道3-6步驟可以用下面的一行命令取代
a)Mac
ssh user@server "echo \"`cat .ssh/id_rsa.pub`\" >> .ssh/authorized_keys"
b)Linux 或 Windows 上的 git bash
ssh-copy-id -i ~/.ssh/id_rsa.pub user@server
3. 將門卡復制一個並放至服務器的皮夾
scp id_rsa.pub username@server:~/.ssh/id_rsa.pub
注:如果服務器上沒有.ssh文件夾,需要先登錄服務器進行創建。
4. 登錄到服務器(需要輸入密碼),從服務器皮夾中拿出門卡,取出其中的信息,放到專用的夾層
ssh username@server
cd ~/.ssh
cat id_rsa.pub >> authorized_keys
5. 銷毀服務器皮夾中的門卡
rm id_rsa.pub
6. 退出服務器
exit
7. 再次登錄時就無需輸入密碼
ssh username@server
Welcome Houyi VM System !
[root@aliyun-cnblogs ~]#
無密碼ssh登錄就這么簡單!
參考文章: