close

按此前往linux完整教學目錄

 

 

Linux系統中進行ssh連線的具體步驟:

(1) 伺服器啟動ssh

ssh伺服器A啟動ssh服務(服務名稱為sshsshd)。系統會自動確認在/etc/ssh/目錄下是否存在著公鑰A和私鑰A:公鑰A的副檔名通常為pub,而私鑰A通常沒有副檔名。

/etc/ssh/目錄下,常見的公、私鑰檔名有:

公鑰檔名

私鑰檔名

說明

ssh_host_key.pub

ssh_host_key

ssh(version1)所建立出來的公、私鑰。

ssh_host_rsa_key.pub

ssh_host_rsa_key

ssh(version2)利用RSA演算法所建立出來的公、私鑰。

ssh_host_dsa_key.pub

ssh_host_dsa_key

ssh(version2)利用DSA演算法所建立出來的公、私鑰。

/etc/ssh/目錄下沒有這些公、私鑰,則系統會自動建立。

從上述可知,若伺服器A的管理員沒有刪除這些公、私鑰,則這些公、私鑰便會持續被使用,直到天荒地老。

※ 註(重要!)若伺服端的ssh公、私鑰遺失,而管理員想手動重新產生這些公、私鑰,其語法為:

ssh-keygen -t dsa -f sshdsa私鑰的完整路徑

ssh-keygen -t rsa -f sshrsa私鑰的完整路徑

例如:

ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key

ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key

即可手動重新產生這些公、私鑰。過程中若系統有要管理員輸入passphrase,可直接按<enter>鍵略過亦無妨。ssh-keygen的詳細用法在以下會談到。

(2) 伺服器A接到客戶端B的連線請求:

在接到請求後,A會把公鑰A公布在網際網路上,以讓B取得。

(3) 用戶端B收到公鑰A

用戶端B會先到己方的~/.ssh/known_hosts檔案中,檢查裡頭是否有關於公鑰A的紀錄:

若有,表示雙方應在以前就有連線過,故A應是值得信賴的連線對象,直接進入下一步驟。

若無,表示雙方應是第一次連線,此時系統可能會詢問B的使用者,是否真要和A連線?若使用者回答是,則將公鑰A加入~/.ssh/known_hosts檔案中,並進行下一步驟。否則取消連線。

註: 若伺服器A因為某些原因而刪除或遺失了其公鑰,勢必要再建立另一把公鑰。這時,若B還要再和A連線,因為A的公鑰換了,所以B會以為是和A第一次連線,而將新的公鑰A加入~/.ssh/known_hosts檔案中。

(4) 用戶端建立公鑰B、私鑰B,並將公鑰B傳送給伺服端A。通常,公鑰B、私鑰B在用戶端主機上所存放的位置,使用者是很難自行找到的。

(5) 雙方正式開始連線,進行通訊。

 

 

上一篇:linux ssh連線機制簡介

下一篇:linux ssh伺服器設定

arrow
arrow
    創作者介紹
    創作者 埃伯 的頭像
    埃伯

    程式語言教學

    埃伯 發表在 痞客邦 留言(0) 人氣()