一、SSH服務簡介
SSH是Secure Shell的縮寫,由 IETF 網絡工作小組所制定。SSH 是建立在應用層和傳輸層,基礎上的安全協議。
SSH是目前可靠的,專為遠程登錄會話和其他網絡服務提供安全性的協議。常用于遠程登錄,以及用戶之間進行文件傳輸。利用ssh協議可以有效防止遠程管理過程中的信息洩露。
使用SSH服務,需要安裝相應的服務端和客戶端。客戶端和服務端的關系:如果,A機器想被B機器遠程控制,那麼,A機器需要安裝SSH服務端,B機器需要安裝SSH客戶端。
二、SSH服務監聽端口、守護進程及配置文件
三、SSH配置文件常用設定項
服務端設定項(/etc/ssh/sshd_config)
Port
SSH服務監聽端口,默認使用 22 端口,也可以使用多個端口,即重複使用 Port 這個設定項進行設定。
ListenAddress
指定sshd監聽的網絡地址,默認監聽所有地址。可以使用下面的格式:
ListenAddress host|IPv4_addr|IPv6_addr
ListenAddress host|IPv4_addr:port
ListenAddress [host|IPv6_addr]:port
如果未指定 port ,那麼将使用配置文件中 Port 指令的值,可以使用多個 ListenAddress 指令監聽多個地址。
HostKey
主機私鑰文件保存的位置。如果權限不對,sshd可能會拒絕啟動。
SSH-1默認是:/etc/ssh/ssh_host_key 。
SSH-2默認是:/etc/ssh/ssh_host_rsa_key 和 /etc/ssh/ssh_host_dsa_key 。
一台主機可以擁有多個不同的私鑰。rsa1僅用于SSH-1版本,dsa和rsa僅用于SSH-2版本。
SyslogFacility
指定 sshd 将日志消息通過哪個日志子系統(facility)發送。有效值是:DAEMON,USER,AUTH(默認), LOCAL0, LOCAL1, LOCAL2, LOCAL3,LOCAL4,LOCAL5,LOCAL6,LOCAL7。預設是以AUTHPRIV 來設定的,即保存在/var/log/secure 裡面。
LogLevel
指定 sshd 的日志等級(詳細程度)。可用值如下:QUIET, FATAL, ERROR, INFO(默認), VERBOSE, DEBUG, DEBUG1, DEBUG2, DEBUG3。
DEBUG 與 DEBUG1 等價;DEBUG2 和 DEBUG3 則分别指定了更詳細、更羅嗦的日志輸出。比 DEBUG 更詳細的日志可能會洩漏用戶的敏感信息,因此反對使用。
LoginGraceTime
限制用戶必須在指定的時限内認證成功,0 表示無限制。默認值是 120 秒。
PermitRootLogin
是否允許 root 用戶登錄!預設是允許的,但是建議設定成 no。
StrictModes
當使用者的 host key 改變之後,Server 就不接受聯機,可以抵擋部分的木馬程序!
MaxAuthTries
指定每個連接最大允許的認證次數,默認值是 6 。
MaxSessions
指定最大會話連接數,默認為10個。
RSAAuthentication
是否允許使用純 RSA 公鑰認證。僅适用于SSH-1版本。默認值是yes。
PubkeyAuthentication
是否允許公鑰認證。僅适用于SSH-2版本。默認值為yes。
AuthorizedKeysFile
存放該用戶可以用來登錄的 RSA 或 DSA 公鑰。默認值是:~/.ssh/authorized_keys。
設定若要使用不需要密碼登錄的賬号時,那麼那個賬号存放密碼所在文件名!
PasswordAuthentication
是否允許使用基于密碼的認證,默認為yes。
PermitEmptyPasswords
是否允許密碼為空的用戶遠程登錄。默認為no。
ChallengeResponseAuthentication
是否允許任何的密碼認證。任何login.conf 規定的認證方式,均可适用。默認值為yes。但目前推薦使用 PAM 模塊幫忙管理認證,因此這個選項可以設定為 no !
利用 PAM 管理使用者認證有很多好處,它可以記錄與管理。所以建議将 UsePAM 項設置為yes,将ChallengeResponseAuthentication 項設定為 no。
KerberosAuthentication
指定用戶為PasswordAuthentication提供的密碼是否将通過Kerberos KDC進行驗證。要使用Kerberos認證,服務器需要一個可以校驗 KDC identity 的 Kerberos servtab 。默認值是no。
GSSAPIAuthentication
是否允許使用基于 GSSAPI 的用戶認證。默認值為no。僅用于SSH-2版本。
UsePAM
是否使用 PAM 模塊幫忙管理認證。
AcceptEnv
指定客戶端發送的哪些環境變量将會被傳遞到會話環境中。[注意]隻有SSH-2版本的協議支持環境變量的傳遞(即服務端接收的環境變量)。指令的值是用空格分隔的變量名列表(其中可以使用*和?作為通配符)。也可以使用多個 AcceptEnv 達到同樣的目的。需要注意的是,有些環境變量可能會被用于繞過禁止用戶使用的環境變量。由于這個原因,該指令應當小心使用。
客戶端設定項(/etc/ssh/ssh_config)
Host
選項 Host 隻對能夠匹配後面字串的計算機有效。“*”表示所有的計算機。
Port
設置連接到遠程主機的端口,默認為22端口。
Protocol
指定 sshd 支持的SSH協議的版本,1和2表示僅支持SSH-1或SSH-2協議。2,1表示同時支持SSH-1和SSH-2協議。
Ciphers
指定SSH-2協議允許使用的加密算法,多個算法之間使用逗号分隔。可以使用的算法如下: aes128-cbc, aes192-cbc,aes256-cbc,aes128-ctr,aes192-ctr,aes256-ctr,3des-cbc,arcfour128,arcfour256,arcfour,blowfish-cbc,cast128-cbc;默認值是可以使用上述所有算法。
IdentityFile
設置從哪個文件讀取用戶的RSA安全驗證标識。
StrictHostKeyChecking
如果設置成 yes,ssh就不會自動把計算機的密匙加入 $HOME/.ssh/known_hosts 文件,并且一旦計算機的密匙發生了變化,就拒絕連接。默認是 ask。
CheckHostIP
設置ssh是否查看連接到服務器的主機的IP地址以防止DNS欺騙,建議設置為yes。
PasswordAuthentication
設置是否使用密碼驗證。
RSAAuthentication
設置是否使用RSA算法進行安全驗證。
ForwardAgent
設置連接是否經過驗證代理,如果存在轉發給遠程計算機。
ForwardX11
設置X11連接是否被自動重定向到安全的通道和顯示集(DISPLAY set)。
GSSAPIAuthentication
是否允許使用基于 GSSAPI 的用戶認證。默認值為no,僅适用于SSH-2協議。
SendEnv
指定客戶端發送哪些環境變量至服務端。
以上是我在學習Linux系統中整理的一些學習要點,肯定會有不對的地方,希望各位大俠給與指正,我們共同學習!謝謝!
Linux服務器配置-SSH遠程登錄管理(二)
将介紹配置中用到的相關命令,并通過實例說明怎樣配置SSH基于密碼認證登錄。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!