利用 SSH 協議可以有效防止遠程管理過程中的信息泄露問題,且 SSH客戶端適用於多種平臺。使用公鑰登入遠程服務器是一種基於信息安全性來考慮的
一. 使用公鑰登入遠程 linux 服務器
如果主機沒有安裝 OpenSSH 請先安裝,現在的 Linux 服務器和 Linux 系統默認都安裝了 OpenSSH 軟件,直接在終端進行 SSH 等入管理操作既可
1. 查看 SSH Keys
ls -al ~/.ssh
在列出的文件中如果有 id_rsa
以及id_rsa.pub
文件,可以接觸 cat
來查看內容;如果沒有找到相關的公、私鑰,則需要生成公私鑰
2. 生成 SSH KEY
使用命令
ssh-keygen -t rsa -C "[email protected]"
[email protected]
可以替換爲你的郵箱,文件生成目錄在 SSH KEY 生成後終端會顯示相關信息,可以使用默認路徑也可以在生成 SSH KEY 的過程中自定義
輸出信息如下
[root@server ~]# ssh-keygen -t rsa -C "[email protected]"
Generating public/private rsa key pair. #提示正在生成 rsa 密鑰對
Enter file in which to save the key (/home/usrname/.ssh/id_rsa): #詢問公鑰和私鑰存放的位置,回車用默認位置即可
Enter passphrase (empty for no passphrase): #詢問輸入私鑰密語,輸入密語
Enter same passphrase again: #再次提示輸入密語確認
Your identification has been saved in /home/usrname/.ssh/id_rsa. #提示公鑰和私鑰已經存放在 /root/.ssh/目錄下
Your public key has been saved in /home/usrname/.ssh/id_rsa.pub.
The key fingerprint is:
ba:dd:cc:eb:69:f2:eb:99:1a:9c:61:91:8d:8f:50:d0 [email protected]
The key's randomart image is: #提示 key 指紋
+--[ RSA 2048]----+
| .o. |
| .E+ |
| . + . |
| . + |
| S . |
| + o |
| . + |
| o.=.+ |
| . oB&o |
+-----------------+
說明
- 可以添加參數
-b 1024
指定密鑰對字長,如ssh-keygen -b 1024 -t rsa -C "[email protected]"
表示採用長度爲1024
字節的公鑰/私鑰對(最長4096
字節)。一般 1024 或 2048 就足夠滿足安全需要了,如果字節太長相對的加密解密需要的時間也增長 -t rsa
表示採用rsa
加密方式生成公鑰/私鑰對,除了rsa還
有dsa
方式,rsa
方式最短不能小於768
字節長度。可以通過man ssh-keygen
查看ssh-keygen
其他參數選項。- 在生成密鑰對的過程中會詢問密鑰對保存地址,回車即放置默認地址,也可以自定義
- 在生成密鑰對的過程中會被詢問
輸入密碼短句( Enter passphrase (empty for no passphrase) )
。密碼短句(passphrase)
即使用一個短語或者一句話作爲密碼輸入,再由系統內部的加密或是散列算法生成虛擬密碼後,進行下一步的認證。passphrase
增強了安全性不易被破解。如果默認回車,也就是代表不使用密碼短句。建議輸入密碼短句,這樣如果只是生成密鑰對而不設置密碼短語,那麼如果私鑰丟失了,麻煩可能會比丟失用戶名密碼還嚴重 [email protected]
這個可以自定義
3. 拷貝公鑰到被管理的服務器上
在管理的遠程服務器上把本地 linux 主機公鑰拷貝到被管理服務器上要進行自動登陸的用戶目錄下
4. 使用密鑰對進行遠程登陸
[root@server ~]# ssh root@host -p port
Enter passphrase for key '/root/.ssh/id_rsa': #提示輸入密碼短語,請輸入剛纔設置的密碼短語
Last login: Sun Oct 10 11:32:14 2010 from 192.168.0.1
[peter@client ~]$
我這裏是設置了密鑰短語,正確輸入密鑰短語既可登入。指定登入用戶身份 root
、主機以及端口 port
。默認端口是 22
相關鏈接
[1] SSH協議詳解
[2] SSH 密鑰類型的的選擇(RSA, DSA or Other)
[3] 使用ssh公鑰密鑰自動登陸linux服務器
[4] SSH 有關密鑰和私鑰 的那些事兒
[5] 中間人攻擊(man-in-the-middle attack):你和互聯網中間的第三人
[6] SSH使用密鑰登錄並禁止口令登錄實踐
[7] Https協議簡析及中間人攻擊原理
[8] 數字簽名是什麼?
[9] 阮一峯的日誌之SSH原理與運用
[10] SSH 協議基礎
[11] 圖解SSH原理