[注意]值是大小寫敏感的,但指令是大小寫無關的。
1. 關于 ssh server 的整體設定,包含使用的 port 啦,以及使用的密碼演算方式
port?22 #?ssh?預設使用?22?這個?port,您也可以使用多的?port?! ?#?亦即重復使用?port?這個設定項目即可! protocol?2,1 ?#?選擇的?ssh?協議版本,可以是?1?也可以是?2?, ?#?如果要同時支持兩者,就必須要使用?2,1?這個分隔了! #listenaddress?0.0.0.0 ?#?監聽的主機適配卡!舉個例子來說,如果您有兩個?ip, ?#?分別是?192.168.0.100?及?192.168.2.20?,那么只想要 ?#?開放?192.168.0.100?時,就可以寫如同下面的樣式: listenaddress?192.168.0.100??????????#?只監聽來自?192.168.0.100?這個?ip?的ssh聯機。 ?#?如果不使用設定的話,則預設所有接口均接受?ssh pidfile?/var/run/sshd.pid #?可以放置?sshd?這個?pid?的檔案!左列為默認值 logingracetime?600 ?#?當使用者連上?ssh?server?之后,會出現輸入密碼的畫面, ?#?在該畫面中,在多久時間內沒有成功連上?ssh?server?, ?#?就斷線!時間為秒! compression?yes #?是否可以使用壓縮指令?當然可以啰!
2. 說明主機的 private key 放置的檔案,預設使用下面的檔案即可!
hostkey?/etc/ssh/ssh_host_key #?ssh?version?1?使用的私鑰 hostkey?/etc/ssh/ssh_host_rsa_key #?ssh?version?2?使用的?rsa?私鑰 hostkey?/etc/ssh/ssh_host_dsa_key #?ssh?version?2?使用的?dsa?私鑰 #?2.1?關于?version?1?的一些設定! keyregenerationinterval?3600 ? #?由前面聯機的說明可以知道,?version?1?會使用 ?#?server?的?public?key?,那么如果這個?public ?#?key?被偷的話,豈不完蛋?所以需要每隔一段時間 ?#?來重新建立一次!這里的時間為秒! serverkeybits?768? ?#?沒錯!這個就是?server?key?的長度!
3. 關于登錄文件的訊息數據放置與 daemon 的名稱!
syslogfacility?auth #?當有人使用?ssh?登入系統的時候,ssh會記錄資 ?#?訊,這個信息要記錄在什么?daemon?name?底下? ?#?預設是以?auth?來設定的,即是?/var/log/secure ?#?里面!什么?忘記了!回到?linux?基礎去翻一下 ?#?其它可用的?daemon?name?為:daemon,user,auth, ?#?local0,local1,local2,local3,local4,local5, loglevel?info #?登錄記錄的等級!嘿嘿!任何訊息! ?#?同樣的,忘記了就回去參考!
4. 安全設定項目!極重要!
4.1 登入設定部分
permitrootlogin?no ? #?是否允許?root?登入!預設是允許的,但是建議設定成?no! userlogin?no ?#?在?ssh?底下本來就不接受?login?這個程序的登入! strictmodes?yes #?當使用者的?host?key?改變之后,server?就不接受聯機, ?#?可以抵擋部分的木馬程序! #rsaauthentication?yes ?#?是否使用純的?rsa?認證!?僅針對?version?1?! pubkeyauthentication?yes ?#?是否允許?public?key??當然允許啦!只有?version?2 authorizedkeysfile??????.ssh/authorized_keys ?#?上面這個在設定若要使用不需要密碼登入的賬號時,那么那個 ?#?賬號的存放檔案所在檔名!
4.2 認證部分
rhostsauthentication?no #?本機系統不止使用?.rhosts?,因為僅使用?.rhosts?太 ?#?不安全了,所以這里一定要設定為?no?! ignorerhosts?yes ?#?是否取消使用?~/.ssh/.rhosts?來做為認證!當然是! rhostsrsaauthentication?no?#?這個選項是專門給?version?1?用的,使用?rhosts?檔案在 ?#?/etc/hosts.equiv配合?rsa?演算方式來進行認證!不要使用 hostbasedauthentication?no?#?這個項目與上面的項目類似,不過是給?version?2?使用的! ignoreuserknownhosts?no #?是否忽略家目錄內的?~/.ssh/known_hosts?這個檔案所記錄 ?#?的主機內容?當然不要忽略,所以這里就是?no?啦! passwordauthentication?yes?#?密碼驗證當然是需要的!所以這里寫?yes?啰! permitemptypasswords?no #?若上面那一項如果設定為?yes?的話,這一項就最好設定 ?#?為?no?,這個項目在是否允許以空的密碼登入!當然不許! challengeresponseauthentication?yes??#?挑戰任何的密碼認證!所以,任何?login.conf ?#?規定的認證方式,均可適用! #pamauthenticationviakbdint?yes??????#?是否啟用其它的?pam?模塊!啟用這個模塊將會 ?#?導致?passwordauthentication?設定失效!
4.3 與 kerberos 有關的參數設定!因為我們沒有 kerberos 主機,所以底下不用設定!
#kerberosauthentication?no #kerberosorlocalpasswd?yes #kerberosticketcleanup?yes #kerberostgtpassing?no
4.4 底下是有關在 x-window 底下使用的相關設定!
x11forwarding?yes #x11displayoffset?10 #x11uselocalhost?yes
4.5 登入后的項目:
printmotd?no??????????????#?登入后是否顯示出一些信息呢?例如上次登入的時間、地點等 #?等,預設是?yes?,但是,如果為了安全,可以考慮改為?no?! printlastlog?yes #?顯示上次登入的信息!可以啊!預設也是?yes?! keepalive?yes ?#?一般而言,如果設定這項目的話,那么?ssh?server?會傳送 #?keepalive?的訊息給?client?端,以確保兩者的聯機正常! #?在這個情況下,任何一端死掉后,?ssh?可以立刻知道!而不會 #?有僵尸程序的發生! useprivilegeseparation?yes?#?使用者的權限設定項目!就設定為?yes?吧! maxstartups?10 #?同時允許幾個尚未登入的聯機畫面?當我們連上?ssh?, #?但是尚未輸入密碼時,這個時候就是我們所謂的聯機畫面啦! #?在這個聯機畫面中,為了保護主機,所以需要設定最大值, #?預設最多十個聯機畫面,而已經建立聯機的不計算在這十個當中
4.6 關于使用者抵擋的設定項目:
denyusers?* ?#?設定受抵擋的使用者名稱,如果是全部的使用者,那就是全部 #?擋吧!若是部分使用者,可以將該賬號填入!例如下列! denyusers?test denygroups?test ?#?與?denyusers?相同!僅抵擋幾個群組而已!
5. 關于 sftp 服務的設定項目!
subsystem???????sftp????/usr/lib/ssh/sftp-server
基本上,在系統中除非有必要,否則請不要更改 /etc/ssh/sshd_config 這個檔案的設定值!因為預設的情況下通常都是最嚴密的 ssh 保護了,因此,可以不需要更動他!上面的說明僅是在讓大家了解每個細項的一些基本內容而已!需要注意的是最后一項,如果您不愿意開放 sftp 的話,將最后一行批注掉即可。
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END