遠(yuǎn)程安裝調(diào)試SSH特別注意,OpenSSH卸載后,可能導(dǎo)致凡使用SSH協(xié)議連接服務(wù)器的工具都無(wú)法登陸,比如WINSCP、PUTTY等,如果你正使用遠(yuǎn)程桌面,最好先開啟TELNET并確保開機(jī)啟動(dòng)(或其它可替代的遠(yuǎn)程管理工具也可以),客戶端可以正常連接后才可動(dòng)手更新SSH,否則一旦SSH啟動(dòng)失敗,就只能找機(jī)房了。
一、卸載原來(lái)SSH
默認(rèn)SSH會(huì)安裝為服務(wù),且開機(jī)啟動(dòng),所以要先把服務(wù)停止(本文環(huán)境RedHat5.4):
service sshd stop
這時(shí),建議備份一下/etc/init.d/sshd這個(gè)啟動(dòng)文件,因?yàn)橄挛木幾g安裝OpenSSH后,沒(méi)這個(gè)啟動(dòng)文件,盡管實(shí)際修改使用也不是太方便,除非你下文的安裝目錄跟原來(lái)的一樣的。
mv /etc/init.d/sshd /etc/init.d/sshd.old
卸載軟件包:
rmp -qa|grep openssh*
把輸出列表中的SSH軟件包都卸載掉。卸載方法請(qǐng)參考:
二、下載并安裝新的OPENSSH
cd /tmp
wget http://ftp.jaist.ac.jp/pub/OpenBSD/OpenSSH/portable/openssh-5.9p1.tar.gz
tar xzvf openssh-5.9p1.tar.gz
cd openssh-5.9p1
./configure --prefix=/usr/local/openssh --sysconfdir=/etc/ssh --with-pam --with-ssl-dir=/usr/local/openssl --with-md5-passwords --mandir=/usr/share/man --with-zlib=/usr/local/zlib2
make make install
這里需要注意,上面的./configure配置,天緣的默認(rèn)路徑如下:
openssl -> /usr/local/openssl
zlib -> /usr/local/zlib2
確認(rèn)這些路徑跟你的系統(tǒng)對(duì)應(yīng)。不同則需手動(dòng)修改掉。此外還有些參數(shù),比如:
--bindir=/usr/bin --sbindir=/usr/sbin
可根據(jù)需要設(shè)定。
三、查詢SSH版本
[root@localhost]# ssh -V
OpenSSH_5.9p1, OpenSSL 1.0.1 14 Mar 2012
四、設(shè)為服務(wù)開機(jī)運(yùn)行
1、簡(jiǎn)單的開機(jī)啟動(dòng)設(shè)置方法
由于是自編譯安裝的OpenSSH,沒(méi)有sshd這個(gè)啟動(dòng)文件,所以直接使用傳統(tǒng)的啟動(dòng)方式,直接修改rc.local。打開/etc/rc.local,添加:
/usr/sbin/sshd
即可設(shè)置為開機(jī)啟動(dòng)。
2、愛(ài)折騰設(shè)置開機(jī)方法
使用chkconfig設(shè)置結(jié)合上文備份的sshd文件設(shè)為開機(jī)啟動(dòng)有點(diǎn)麻煩,首先還原/etc/init.d/sshd:
mv /etc/init.d/sshd.old /etc/init.d/sshd
再打開/etc/init.d/sshd文件(原裝的sshd啟動(dòng)配置文件大概有4K多,主要確認(rèn)頂部幾個(gè)路徑是否正確即可),天緣大概整理一下,主要如下幾個(gè)(可能不一定完整,下次實(shí)際確認(rèn)一下再補(bǔ)充完善):
...
# source function library
. /etc/rc.d/init.d/functions/p>
p># pull in sysconfig settings
[ -f /etc/sysconfig/sshd ] . /etc/sysconfig/sshd/p>
p>RETVAL=0
prog="sshd"
lockfile=/var/lock/subsys/$prog/p>
p># Some functions to make the below more readable
KEYGEN=/usr/bin/ssh-keygen
SSHD=/usr/sbin/sshd
RSA1_KEY=/etc/ssh/ssh_host_key
RSA_KEY=/etc/ssh/ssh_host_rsa_key
DSA_KEY=/etc/ssh/ssh_host_dsa_key
PID_FILE=/var/run/sshd.pid
...
確認(rèn)這些并修改這些路徑后保存。
使用chkconfig添加為服務(wù):
chkconfig –add sshd
chkconfig –level 2345 sshd on
這樣就設(shè)置完成了。
五、重啟電腦或服務(wù)
啟動(dòng)SSH:
service sshd start
停止SSH:
service sshd stop
六、OpenSSH配置文件詳解
AcceptEnv
指定客戶端發(fā)送的哪些環(huán)境變量將會(huì)被傳遞到會(huì)話環(huán)境中。[注意]只有SSH-2協(xié)議支持環(huán)境變量的傳遞。
細(xì)節(jié)可以參考 ssh_config 中的 SendEnv 配置指令。
指令的值是空格分隔的變量名列表(其中可以使用’*’和’?’作為通配符)。也可以使用多個(gè) AcceptEnv 達(dá)到同樣的目的。
需要注意的是,有些環(huán)境變量可能會(huì)被用于繞過(guò)禁止用戶使用的環(huán)境變量。由于這個(gè)原因,該指令應(yīng)當(dāng)小心使用。
默認(rèn)是不傳遞任何環(huán)境變量。
AddressFamily
指定 sshd應(yīng)當(dāng)使用哪種地址族。取值范圍是:”any”(默認(rèn))、”inet”(僅IPv4)、”inet6″(僅IPv6)。
AllowGroups
這個(gè)指令后面跟著一串用空格分隔的組名列表(其中可以使用”*”和”?”通配符)。默認(rèn)允許所有組登錄。
如果使用了這個(gè)指令,那么將僅允許這些組中的成員登錄,而拒絕其它所有組。
這里的”組”是指”主組”(primary group),也就是/etc/passwd文件中指定的組。
這里只允許使用組的名字而不允許使用GID。相關(guān)的 allow/deny 指令按照下列順序處理:
DenyUsers, AllowUsers, DenyGroups, AllowGroups
AllowTcpForwarding
是否允許TCP轉(zhuǎn)發(fā),默認(rèn)值為”yes”。
禁止TCP轉(zhuǎn)發(fā)并不能增強(qiáng)安全性,除非禁止了用戶對(duì)shell的訪問(wèn),因?yàn)橛脩艨梢园惭b他們自己的轉(zhuǎn)發(fā)器。
AllowUsers
這個(gè)指令后面跟著一串用空格分隔的用戶名列表(其中可以使用”*”和”?”通配符)。默認(rèn)允許所有用戶登錄。
如果使用了這個(gè)指令,那么將僅允許這些用戶登錄,而拒絕其它所有用戶。
如果指定了 USER@HOST 模式的用戶,那么 USER 和 HOST 將同時(shí)被檢查。
這里只允許使用用戶的名字而不允許使用UID。相關(guān)的 allow/deny 指令按照下列順序處理:
DenyUsers, AllowUsers, DenyGroups, AllowGroups
AuthorizedKeysFile
存放該用戶可以用來(lái)登錄的 RSA/DSA 公鑰。
該指令中可以使用下列根據(jù)連接時(shí)的實(shí)際情況進(jìn)行展開的符號(hào):
%% 表示’%’、%h 表示用戶的主目錄、%u 表示該用戶的用戶名。
經(jīng)過(guò)擴(kuò)展之后的值必須要么是絕對(duì)路徑,要么是相對(duì)于用戶主目錄的相對(duì)路徑。
默認(rèn)值是”.ssh/authorized_keys”。
Banner
將這個(gè)指令指定的文件中的內(nèi)容在用戶進(jìn)行認(rèn)證前顯示給遠(yuǎn)程用戶。
這個(gè)特性僅能用于SSH-2,默認(rèn)什么內(nèi)容也不顯示。”none”表示禁用這個(gè)特性。
ChallengeResponseAuthentication
是否允許質(zhì)疑-應(yīng)答(challenge-response)認(rèn)證。默認(rèn)值是”yes”。
所有 login.conf 中允許的認(rèn)證方式都被支持。
Ciphers
指定SSH-2允許使用的加密算法。多個(gè)算法之間使用逗號(hào)分隔??梢允褂玫乃惴ㄈ缦拢?
“aes128-cbc”, “aes192-cbc”, “aes256-cbc”, “aes128-ctr”, “aes192-ctr”, “aes256-ctr”,
“3des-cbc”, “arcfour128″, “arcfour256″, “arcfour”, “blowfish-cbc”, “cast128-cbc”
默認(rèn)值是可以使用上述所有算法。
ClientAliveCountMax
sshd 在未收到任何客戶端回應(yīng)前最多允許發(fā)送多少個(gè)”alive”消息。默認(rèn)值是 3 。
到達(dá)這個(gè)上限后,sshd 將強(qiáng)制斷開連接、關(guān)閉會(huì)話。
需要注意的是,”alive”消息與 TCPKeepAlive 有很大差異。
“alive”消息是通過(guò)加密連接發(fā)送的,因此不會(huì)被欺騙;而 TCPKeepAlive 卻是可以被欺騙的。
如果 ClientAliveInterval 被設(shè)為 15 并且將 ClientAliveCountMax 保持為默認(rèn)值,
那么無(wú)應(yīng)答的客戶端大約會(huì)在45秒后被強(qiáng)制斷開。這個(gè)指令僅可以用于SSH-2協(xié)議。
ClientAliveInterval
設(shè)置一個(gè)以秒記的時(shí)長(zhǎng),如果超過(guò)這么長(zhǎng)時(shí)間沒(méi)有收到客戶端的任何數(shù)據(jù),
sshd 將通過(guò)安全通道向客戶端發(fā)送一個(gè)”alive”消息,并等候應(yīng)答。
默認(rèn)值 0 表示不發(fā)送”alive”消息。這個(gè)選項(xiàng)僅對(duì)SSH-2有效。
Compression
是否對(duì)通信數(shù)據(jù)進(jìn)行加密,還是延遲到認(rèn)證成功之后再對(duì)通信數(shù)據(jù)加密。
可用值:”yes”, “delayed”(默認(rèn)), “no”。
DenyGroups
這個(gè)指令后面跟著一串用空格分隔的組名列表(其中可以使用”*”和”?”通配符)。默認(rèn)允許所有組登錄。
如果使用了這個(gè)指令,那么這些組中的成員將被拒絕登錄。
這里的”組”是指”主組”(primary group),也就是/etc/passwd文件中指定的組。
這里只允許使用組的名字而不允許使用GID。相關(guān)的 allow/deny 指令按照下列順序處理:
DenyUsers, AllowUsers, DenyGroups, AllowGroups
DenyUsers
這個(gè)指令后面跟著一串用空格分隔的用戶名列表(其中可以使用”*”和”?”通配符)。默認(rèn)允許所有用戶登錄。
如果使用了這個(gè)指令,那么這些用戶將被拒絕登錄。
如果指定了 USER@HOST 模式的用戶,那么 USER 和 HOST 將同時(shí)被檢查。
這里只允許使用用戶的名字而不允許使用UID。相關(guān)的 allow/deny 指令按照下列順序處理:
DenyUsers, AllowUsers, DenyGroups, AllowGroups
ForceCommand
強(qiáng)制執(zhí)行這里指定的命令而忽略客戶端提供的任何命令。這個(gè)命令將使用用戶的登錄shell執(zhí)行(shell -c)。
這可以應(yīng)用于 shell 、命令、子系統(tǒng)的完成,通常用于 Match 塊中。
這個(gè)命令最初是在客戶端通過(guò) SSH_ORIGINAL_COMMAND 環(huán)境變量來(lái)支持的。
GatewayPorts
是否允許遠(yuǎn)程主機(jī)連接本地的轉(zhuǎn)發(fā)端口。默認(rèn)值是”no”。
sshd默認(rèn)將遠(yuǎn)程端口轉(zhuǎn)發(fā)綁定到loopback地址。這樣將阻止其它遠(yuǎn)程主機(jī)連接到轉(zhuǎn)發(fā)端口。
GatewayPorts 指令可以讓 sshd 將遠(yuǎn)程端口轉(zhuǎn)發(fā)綁定到非loopback地址,這樣就可以允許遠(yuǎn)程主機(jī)連接了。
“no”表示僅允許本地連接,”yes”表示強(qiáng)制將遠(yuǎn)程端口轉(zhuǎn)發(fā)綁定到統(tǒng)配地址(wildcard address),
“clientspecified”表示允許客戶端選擇將遠(yuǎn)程端口轉(zhuǎn)發(fā)綁定到哪個(gè)地址。
GSSAPIAuthentication
是否允許使用基于 GSSAPI 的用戶認(rèn)證。默認(rèn)值為”no”。僅用于SSH-2。
GSSAPICleanupCredentials
是否在用戶退出登錄后自動(dòng)銷毀用戶憑證緩存。默認(rèn)值是”yes”。僅用于SSH-2。
HostbasedAuthentication
這個(gè)指令與 RhostsRSAAuthentication 類似,但是僅可以用于SSH-2。推薦使用默認(rèn)值”no”。
推薦使用默認(rèn)值”no”禁止這種不安全的認(rèn)證方式。
HostbasedUsesNameFromPacketOnly
在開啟 HostbasedAuthentication 的情況下,
指定服務(wù)器在使用 ~/.shosts ~/.rhosts /etc/hosts.equiv 進(jìn)行遠(yuǎn)程主機(jī)名匹配時(shí),是否進(jìn)行反向域名查詢。
“yes”表示 sshd 信任客戶端提供的主機(jī)名而不進(jìn)行反向查詢。默認(rèn)值是”no”。
HostKey
主機(jī)私鑰文件的位置。如果權(quán)限不對(duì),sshd可能會(huì)拒絕啟動(dòng)。
SSH-1默認(rèn)是 /etc/ssh/ssh_host_key 。
SSH-2默認(rèn)是 /etc/ssh/ssh_host_rsa_key 和 /etc/ssh/ssh_host_dsa_key 。
一臺(tái)主機(jī)可以擁有多個(gè)不同的私鑰。”rsa1″僅用于SSH-1,”dsa”和”rsa”僅用于SSH-2。
IgnoreRhosts
是否在 RhostsRSAAuthentication 或 HostbasedAuthentication 過(guò)程中忽略 .rhosts 和 .shosts 文件。
不過(guò) /etc/hosts.equiv 和 /etc/shosts.equiv 仍將被使用。推薦設(shè)為默認(rèn)值”yes”。
IgnoreUserKnownHosts
是否在 RhostsRSAAuthentication 或 HostbasedAuthentication 過(guò)程中忽略用戶的 ~/.ssh/known_hosts 文件。
默認(rèn)值是”no”。為了提高安全性,可以設(shè)為”yes”。
KerberosAuthentication
是否要求用戶為 PasswordAuthentication 提供的密碼必須通過(guò) Kerberos KDC 認(rèn)證,也就是是否使用Kerberos認(rèn)證。
要使用Kerberos認(rèn)證,服務(wù)器需要一個(gè)可以校驗(yàn) KDC identity 的 Kerberos servtab 。默認(rèn)值是”no”。
KerberosGetAFSToken
如果使用了 AFS 并且該用戶有一個(gè) Kerberos 5 TGT,那么開啟該指令后,
將會(huì)在訪問(wèn)用戶的家目錄前嘗試獲取一個(gè) AFS token 。默認(rèn)為”no”。
KerberosOrLocalPasswd
如果 Kerberos 密碼認(rèn)證失敗,那么該密碼還將要通過(guò)其它的認(rèn)證機(jī)制(比如 /etc/passwd)。
默認(rèn)值為”yes”。
KerberosTicketCleanup
是否在用戶退出登錄后自動(dòng)銷毀用戶的 ticket 。默認(rèn)值是”yes”。
KeyRegenerationInterval
在SSH-1協(xié)議下,短命的服務(wù)器密鑰將以此指令設(shè)置的時(shí)間為周期(秒),不斷重新生成。
這個(gè)機(jī)制可以盡量減小密鑰丟失或者黑客攻擊造成的損失。
設(shè)為 0 表示永不重新生成,默認(rèn)為 3600(秒)。
ListenAddress
指定 sshd 監(jiān)聽(tīng)的網(wǎng)絡(luò)地址,默認(rèn)監(jiān)聽(tīng)所有地址。可以使用下面的格式:
ListenAddress host|IPv4_addr|IPv6_addr
ListenAddress host|IPv4_addr:port
ListenAddress [host|IPv6_addr]:port
如果未指定 port ,那么將使用 Port 指令的值。
可以使用多個(gè) ListenAddress 指令監(jiān)聽(tīng)多個(gè)地址。
LoginGraceTime
限制用戶必須在指定的時(shí)限內(nèi)認(rèn)證成功,0 表示無(wú)限制。默認(rèn)值是 120 秒。
LogLevel
指定 sshd 的日志等級(jí)(詳細(xì)程度)??捎弥等缦拢?
QUIET, FATAL, ERROR, INFO(默認(rèn)), VERBOSE, DEBUG, DEBUG1, DEBUG2, DEBUG3
DEBUG 與 DEBUG1 等價(jià);DEBUG2 和 DEBUG3 則分別指定了更詳細(xì)、更羅嗦的日志輸出。
比 DEBUG 更詳細(xì)的日志可能會(huì)泄漏用戶的敏感信息,因此反對(duì)使用。
MACs
指定允許在SSH-2中使用哪些消息摘要算法來(lái)進(jìn)行數(shù)據(jù)校驗(yàn)。
可以使用逗號(hào)分隔的列表來(lái)指定允許使用多個(gè)算法。默認(rèn)值(包含所有可以使用的算法)是:
hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160,hmac-sha1-96,hmac-md5-96
Match
引入一個(gè)條件塊。塊的結(jié)尾標(biāo)志是另一個(gè) Match 指令或者文件結(jié)尾。
如果 Match 行上指定的條件都滿足,那么隨后的指令將覆蓋全局配置中的指令。
Match 的值是一個(gè)或多個(gè)”條件-模式”對(duì)。可用的”條件”是:User, Group, Host, Address 。
只有下列指令可以在 Match 塊中使用:AllowTcpForwarding, Banner,
ForceCommand, GatewayPorts, GSSApiAuthentication,
KbdInteractiveAuthentication, KerberosAuthentication,
PasswordAuthentication, PermitOpen, PermitRootLogin,
RhostsRSAAuthentication, RSAAuthentication, X11DisplayOffset,
X11Forwarding, X11UseLocalHost
MaxAuthTries
指定每個(gè)連接最大允許的認(rèn)證次數(shù)。默認(rèn)值是 6 。
如果失敗認(rèn)證的次數(shù)超過(guò)這個(gè)數(shù)值的一半,連接將被強(qiáng)制斷開,且會(huì)生成額外的失敗日志消息。
MaxStartups
最大允許保持多少個(gè)未認(rèn)證的連接。默認(rèn)值是 10 。
到達(dá)限制后,將不再接受新連接,除非先前的連接認(rèn)證成功或超出 LoginGraceTime 的限制。
PasswordAuthentication
是否允許使用基于密碼的認(rèn)證。默認(rèn)為”yes”。
PermitEmptyPasswords
是否允許密碼為空的用戶遠(yuǎn)程登錄。默認(rèn)為”no”。
PermitOpen
指定TCP端口轉(zhuǎn)發(fā)允許的目的地,可以使用空格分隔多個(gè)轉(zhuǎn)發(fā)目標(biāo)。默認(rèn)允許所有轉(zhuǎn)發(fā)請(qǐng)求。
合法的指令格式如下:
PermitOpen host:port
PermitOpen IPv4_addr:port
PermitOpen [IPv6_addr]:port
“any”可以用于移除所有限制并允許一切轉(zhuǎn)發(fā)請(qǐng)求。
PermitRootLogin
是否允許 root 登錄??捎弥等缦拢?
“yes”(默認(rèn)) 表示允許。”no”表示禁止。
“without-password”表示禁止使用密碼認(rèn)證登錄。
“forced-commands-only”表示只有在指定了 command 選項(xiàng)的情況下才允許使用公鑰認(rèn)證登錄。
同時(shí)其它認(rèn)證方法全部被禁止。這個(gè)值常用于做遠(yuǎn)程備份之類的事情。
PermitTunnel
是否允許 tun 設(shè)備轉(zhuǎn)發(fā)??捎弥等缦拢?
“yes”, “point-to-point”(layer 3), “ethernet”(layer 2), “no”(默認(rèn))。
“yes”同時(shí)蘊(yùn)含著”point-to-point”和”ethernet”。
PermitUserEnvironment
指定是否允許 sshd處理 ~/.ssh/environment 以及 ~/.ssh/authorized_keys 中的 environment= 選項(xiàng)。
默認(rèn)值是”no”。如果設(shè)為”yes”可能會(huì)導(dǎo)致用戶有機(jī)會(huì)使用某些機(jī)制(比如 LD_PRELOAD)繞過(guò)訪問(wèn)控制,造成安全漏洞。
PidFile
指定在哪個(gè)文件中存放SSH守護(hù)進(jìn)程的進(jìn)程號(hào),默認(rèn)為 /var/run/sshd.pid 文件。
Port
指定 sshd守護(hù)進(jìn)程監(jiān)聽(tīng)的端口號(hào),默認(rèn)為 22 ??梢允褂枚鄺l指令監(jiān)聽(tīng)多個(gè)端口。
默認(rèn)將在本機(jī)的所有網(wǎng)絡(luò)接口上監(jiān)聽(tīng),但是可以通過(guò) ListenAddress 指定只在某個(gè)特定的接口上監(jiān)聽(tīng)。
PrintLastLog
指定 sshd 是否在每一次交互式登錄時(shí)打印最后一位用戶的登錄時(shí)間。默認(rèn)值是”yes”。
PrintMotd
指定 sshd 是否在每一次交互式登錄時(shí)打印 /etc/motd 文件的內(nèi)容。默認(rèn)值是”yes”。
Protocol
指定 sshd 支持的SSH協(xié)議的版本號(hào)。
’1′和’2′表示僅僅支持SSH-1和SSH-2協(xié)議。”2,1″表示同時(shí)支持SSH-1和SSH-2協(xié)議。
PubkeyAuthentication
是否允許公鑰認(rèn)證。僅可以用于SSH-2。默認(rèn)值為”yes”。
RhostsRSAAuthentication
是否使用強(qiáng)可信主機(jī)認(rèn)證(通過(guò)檢查遠(yuǎn)程主機(jī)名和關(guān)聯(lián)的用戶名進(jìn)行認(rèn)證)。僅用于SSH-1。
這是通過(guò)在RSA認(rèn)證成功后再檢查 ~/.rhosts 或 /etc/hosts.equiv 進(jìn)行認(rèn)證的。
出于安全考慮,建議使用默認(rèn)值”no”。
RSAAuthentication
是否允許使用純 RSA 公鑰認(rèn)證。僅用于SSH-1。默認(rèn)值是”yes”。
ServerKeyBits
指定臨時(shí)服務(wù)器密鑰的長(zhǎng)度。僅用于SSH-1。默認(rèn)值是 768(位)。最小值是 512 。
StrictModes
指定是否要求 sshd 在接受連接請(qǐng)求前對(duì)用戶主目錄和相關(guān)的配置文件進(jìn)行宿主和權(quán)限檢查。
強(qiáng)烈建議使用默認(rèn)值”yes”來(lái)預(yù)防可能出現(xiàn)的低級(jí)錯(cuò)誤。
Subsystem
配置一個(gè)外部子系統(tǒng)(例如,一個(gè)文件傳輸守護(hù)進(jìn)程)。僅用于SSH-2協(xié)議。
值是一個(gè)子系統(tǒng)的名字和對(duì)應(yīng)的命令行(含選項(xiàng)和參數(shù))。比如”sft /bin/sftp-server”。
SyslogFacility
指定 sshd 將日志消息通過(guò)哪個(gè)日志子系統(tǒng)(facility)發(fā)送。有效值是:
DAEMON, USER, AUTH(默認(rèn)), LOCAL0, LOCAL1, LOCAL2, LOCAL3, LOCAL4, LOCAL5, LOCAL6, LOCAL7
TCPKeepAlive
指定系統(tǒng)是否向客戶端發(fā)送 TCP keepalive 消息。默認(rèn)值是”yes”。
這種消息可以檢測(cè)到死連接、連接不當(dāng)關(guān)閉、客戶端崩潰等異常。
可以設(shè)為”no”關(guān)閉這個(gè)特性。
UseDNS
指定 sshd是否應(yīng)該對(duì)遠(yuǎn)程主機(jī)名進(jìn)行反向解析,以檢查此主機(jī)名是否與其IP地址真實(shí)對(duì)應(yīng)。默認(rèn)值為”yes”。
UseLogin
是否在交互式會(huì)話的登錄過(guò)程中使用 login 。默認(rèn)值是”no”。
如果開啟此指令,那么 X11Forwarding 將會(huì)被禁止,因?yàn)?login不知道如何處理 xauthcookies 。
需要注意的是,login 是禁止用于遠(yuǎn)程執(zhí)行命令的。
如果指定了 UsePrivilegeSeparation ,那么它將在認(rèn)證完成后被禁用。
UsePrivilegeSeparation
是否讓 sshd 通過(guò)創(chuàng)建非特權(quán)子進(jìn)程處理接入請(qǐng)求的方法來(lái)進(jìn)行權(quán)限分離。默認(rèn)值是”yes”。
認(rèn)證成功后,將以該認(rèn)證用戶的身份創(chuàng)建另一個(gè)子進(jìn)程。
這樣做的目的是為了防止通過(guò)有缺陷的子進(jìn)程提升權(quán)限,從而使系統(tǒng)更加安全。
UsePAM
是否使用PAM登陸。
X11DisplayOffset
指定 sshdX11 轉(zhuǎn)發(fā)的第一個(gè)可用的顯示區(qū)(display)數(shù)字。默認(rèn)值是 10 。
這個(gè)可以用于防止 sshd 占用了真實(shí)的 X11 服務(wù)器顯示區(qū),從而發(fā)生混淆。
X11Forwarding
是否允許進(jìn)行 X11 轉(zhuǎn)發(fā)。默認(rèn)值是”no”,設(shè)為”yes”表示允許。
如果允許X11轉(zhuǎn)發(fā)并且sshd代理的顯示區(qū)被配置為在含有通配符的地址(X11UseLocalhost)上監(jiān)聽(tīng)。
那么將可能有額外的信息被泄漏。由于使用X11轉(zhuǎn)發(fā)的可能帶來(lái)的風(fēng)險(xiǎn),此指令默認(rèn)值為”no”。
需要注意的是,禁止X11轉(zhuǎn)發(fā)并不能禁止用戶轉(zhuǎn)發(fā)X11通信,因?yàn)橛脩艨梢园惭b他們自己的轉(zhuǎn)發(fā)器。
如果啟用了 UseLogin ,那么X11轉(zhuǎn)發(fā)將被自動(dòng)禁止。
X11UseLocalhost
sshd 是否應(yīng)當(dāng)將X11轉(zhuǎn)發(fā)服務(wù)器綁定到本地loopback地址。默認(rèn)值是”yes”。
sshd 默認(rèn)將轉(zhuǎn)發(fā)服務(wù)器綁定到本地loopback地址并將 DISPLAY 環(huán)境變量的主機(jī)名部分設(shè)為”localhost”。
這可以防止遠(yuǎn)程主機(jī)連接到 proxy display 。不過(guò)某些老舊的X11客戶端不能在此配置下正常工作。
為了兼容這些老舊的X11客戶端,你可以設(shè)為”no”。
XAuthLocation
指定 xauth 程序的絕對(duì)路徑。默認(rèn)值是 /usr/X11R6/bin/xauth