ssh伺服器的基本設定:
ssh的基本設定檔是/etc/ssh/sshd_config。其語法有二:井字號#之後的文字是註解,其餘者每一行都是一個設定項。常用的設定項如下:
※ Port N:N是正整數。表示伺服器使用第N個埠口來傳遞ssh的資料。N的預設值是22。
※ Protocol N:N的值可為1(表示ssh的版本是version1)或2(表示ssh的版本是version1)。若要同時使用兩者,則此項應寫為Protocol 1,2。
※ ListenAddress IP位址:表示伺服器只去傾聽來自該IP位址之客戶端的請求。也就是說,只有來自該IP位址之客戶端的請求才被允許與伺服器連線。若此項設定為ListenAddress 0,0,0,0、或此項被註解,都表示伺服器會傾聽所有客戶端的請求。
※ LoginGraceTime N:N是正整數。表示客戶端對伺服器發起連線後,若在N秒內還沒有輸入密碼、完成登入的話,就中斷此連線。
※ PermitRootLogin yes或no:表示是否允許遠端的客戶端使用root身分登入伺服器。建議最好不要(設定值改為no),以減少安全性的風險。
※ HostKey 路徑:表示使用路徑上的檔案作為ssh伺服器的私鑰。
※ SyslogFacility 事件類型:決定ssh伺服器所產生的事件是屬於哪種事件類型,不同的事件類型將被儲存在不同的登錄檔中。預設的事件類型是AUTH,也就是說,ssh的事件會被記錄在/var/log/auth.log這個登錄檔中。若欲知道ssh事件訊息,可使用:cat /var/log/auth.log | grep ssh
關於登錄檔與事件類型,請參看「Linux作業系統第十九章~登錄檔」。
※ LogLevel 訊息種類:表示將ssh伺服器產生的「該訊息種類與比該訊息種類更加危險的訊息」,給記錄在登錄檔中。其他則不紀錄。
※ PasswordAuthentication yes或no:表示客戶端連線入伺服器、取得使用者身分時,是不是需要輸入使用者密碼。建議設為yes,否則伺服器易被陌生人隨意進入。
※ PermitEmptyPasswords yes或no:表示客戶端連線入伺服器、輸入密碼時,是否允許輸入空的密碼來登入(與PasswordAuthentication這個設定項有關)。建議設為no,否則伺服器易被陌生人隨意進入。
※ PrintMotd yes或no:表示當客戶端登入ssh伺服器後,是否顯示/etc/motd這個檔案的內容,給客戶端做為參考資訊。
※ PrintLastLog yes或no:表示當客戶端登入ssh伺服器後,是否顯示客戶端上次登入的時間,給客戶端做為參考資訊。
※ TCPKeepAlive yes或no:若設為yes,則當有用戶端與伺服端成功連線後,伺服端每隔一段時間會發出一個TCP封包給用戶端,用來確認用戶端是否仍在線。若設為no,則不會發出TCP封包去做確認。
※ UsePrivilegeSeparation yes或no:此項目與安全性有關。建議應為yes,否則可能產生安全性上的問題。