對SSH連接來說最重要的4個文件
譯文【51CTO.com快譯】如果你是Linux管理員,就知道安全外殼的價值。要是沒有這個工具,遠(yuǎn)程登錄到Linux服務(wù)器(或通過安全通道發(fā)送文件)就可能帶來很大的麻煩。然后你得到SSH,可以毫不猶豫地使用它。但對于那些剛接觸Linux管理的人來說,可能不太了解SSH的工作原理。當(dāng)然,你可以在計(jì)算上發(fā)出這個命令:
- ssh jack@192.168.1.100
你將登錄,可以處理工作了。這個連接背后發(fā)生了什么?關(guān)鍵部分又是什么?
我認(rèn)為將SSH分解為對SSH連接來說最重要的四個文件是好主意,那樣你就能更好地了解工作原理,從而開始使用該工具。
不妨看看那些關(guān)鍵的文件。
known_hosts
對SSH來說這個文件非常重要。~/.ssh/known_hosts文件包含你登錄的計(jì)算機(jī)的SSH指紋。這些指紋是使用遠(yuǎn)程服務(wù)器的SSH密鑰生成的。通過安全外殼連接到遠(yuǎn)程計(jì)算機(jī)時,系統(tǒng)會問你是否想要繼續(xù)連接(圖A)。
圖A. 連接或不連接,那是個問題
你對該問題回答“是”時,遠(yuǎn)程主機(jī)指紋將保存到known_hosts文件中。該密鑰將顯示為隨機(jī)字符串。每個條目將以| 1 |開頭(圖B)。
圖B. 已知的主機(jī)文件
連接發(fā)生的情況如下:
1. 你嘗試通過客戶端與遠(yuǎn)程服務(wù)器建立連接。
2. 遠(yuǎn)程服務(wù)器將其公鑰發(fā)送給客戶端。
3. SSH客戶端在~/.ssh/known_hosts中搜索密鑰指紋。
4. SSH客戶端加載并驗(yàn)證密鑰。
5. 進(jìn)行用戶身份驗(yàn)證
6. 如果身份驗(yàn)證成功,你將登錄到遠(yuǎn)程計(jì)算機(jī)。
同樣,在該連接過程中,如果未找到遠(yuǎn)程指紋,SSH客戶端將詢問你是否要繼續(xù),當(dāng)你回答繼續(xù)時,將指紋保存到~/.ssh/known_hosts。
authorized_keys
在~/.ssh目錄中,還有另一個名為authorized_keys的文件。該文件與known_hosts文件大不一樣。authorized_keys包含從遠(yuǎn)程客戶端拷貝到服務(wù)器的所有SSH身份驗(yàn)證密鑰。這用于SSH密鑰身份驗(yàn)證。
為了使密鑰驗(yàn)證正常工作,客戶端的公鑰將拷貝到遠(yuǎn)程服務(wù)器上的~/.ssh/authorized_keys文件。最簡單的方法是在客戶端上使用ssh-copy-id命令,就像這樣:
- ssh-copy-id jack@192.168.1.100
系統(tǒng)將提示你輸入遠(yuǎn)程用戶的密碼。驗(yàn)證成功后,來自客戶端的公鑰將拷貝到遠(yuǎn)程服務(wù)器上的~/.ssh/authorized_keys文件中。如果你打開該文件,會看到每個條目都以ssh-rsa開頭,并以客戶端計(jì)算機(jī)的username@hostname結(jié)尾(圖C)。
圖C. authorized_keys文件示例
一旦該密鑰保存到authorized_keys(在遠(yuǎn)程服務(wù)器上),你可以使用SSH密鑰身份驗(yàn)證登錄到該服務(wù)器(從已保存公鑰的客戶端登錄)。
ssh_config
/etc/ssh/ssh_config文件是用于SSH的系統(tǒng)范圍客戶端配置的文件。此處看到的配置僅在ssh命令用來連接到另一個主機(jī)時才起作用。你通常不需要編輯該文件。
sshd_config
另一方面,/etc/ssh/sshd_config文件是SSH守護(hù)程序的配置文件。在這里,你配置以下內(nèi)容:
- 默認(rèn)SSH端口。
- 公鑰驗(yàn)證。
- root登錄權(quán)限。
- 密碼驗(yàn)證。
- X11Forwarding。
比如說,假設(shè)你只想允許密鑰驗(yàn)證并禁用密碼驗(yàn)證。在遠(yuǎn)程服務(wù)器上,可以編輯sshd_config文件,如下所示:
將#PubkeyAuthentication yes改成Pubkeyauthentication yes。
將#PasswordAuthentication yes改成PasswordAuthentication no。
一旦完成這些更改,重新啟動ssh服務(wù),遠(yuǎn)程服務(wù)器將只允許來自~/.ssh/authorized_keys中有條目的客戶端計(jì)算機(jī)的連接。遠(yuǎn)程服務(wù)器的authorized_keys文件中沒有條目?那就無法訪問。
了解那些文件
如果了解上述四個文件,你可以更好地使用SSH工具。你需要知道這些文件是如何運(yùn)作的嗎?并不需要。不過作為管理員,如果你對使用的工具有更深入的了解,就會從中受益。
想了解更多信息,請閱讀以下參考手冊頁:
man ssh
man ssh_config
man sshd_config
原文標(biāo)題:The 4 most important files for SSH connections,作者:Jack Wallen
【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】






























