日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

sshd_config配置详解

發布時間:2024/4/13 编程问答 92 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sshd_config配置详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

sshd_config配置詳解



名稱sshd_config?-?OpenSSH?SSH?服務器守護進程配置文件大綱/etc/ssh/sshd_config描述sshd(8)?默認從?/etc/ssh/sshd_config?文件(或通過?-f?命令行選項指定的文件)讀取配置信息。配置文件是由"指令?值"對組成的,每行一個。空行和以'#'開頭的行都將被忽略。如果值中含有空白符或者其他特殊符號,那么可以通過在兩邊加上雙引號(")進行界定。[注意]值是大小寫敏感的,但指令是大小寫無關的。當前所有可以使用的配置指令如下:?????AcceptEnv指定客戶端發送的哪些環境變量將會被傳遞到會話環境中。[注意]只有SSH-2協議支持環境變量的傳遞。細節可以參考?ssh_config(5)?中的?SendEnv?配置指令。指令的值是空格分隔的變量名列表(其中可以使用'*'和'?'作為通配符)。也可以使用多個?AcceptEnv?達到同樣的目的。需要注意的是,有些環境變量可能會被用于繞過禁止用戶使用的環境變量。由于這個原因,該指令應當小心使用。默認是不傳遞任何環境變量。?????AddressFamily指定?sshd(8)?應當使用哪種地址族。取值范圍是:"any"(默認)、"inet"(僅IPv4)、"inet6"(僅IPv6)。?????AllowGroups這個指令后面跟著一串用空格分隔的組名列表(其中可以使用"*"和"?"通配符)。默認允許所有組登錄。如果使用了這個指令,那么將僅允許這些組中的成員登錄,而拒絕其它所有組。這里的"組"是指"主組"(primary?group),也就是/etc/passwd文件中指定的組。這里只允許使用組的名字而不允許使用GID。相關的?allow/deny?指令按照下列順序處理:?????????????DenyUsers,?AllowUsers,?DenyGroups,?AllowGroupsAllowTcpForwarding是否允許TCP轉發,默認值為"yes"。禁止TCP轉發并不能增強安全性,除非禁止了用戶對shell的訪問,因為用戶可以安裝他們自己的轉發器。?????AllowUsers這個指令后面跟著一串用空格分隔的用戶名列表(其中可以使用"*"和"?"通配符)。默認允許所有用戶登錄。如果使用了這個指令,那么將僅允許這些用戶登錄,而拒絕其它所有用戶。如果指定了?USER@HOST?模式的用戶,那么?USER?和?HOST?將同時被檢查。這里只允許使用用戶的名字而不允許使用UID。相關的?allow/deny?指令按照下列順序處理:?????????????DenyUsers,?AllowUsers,?DenyGroups,?AllowGroupsAuthorizedKeysFile存放該用戶可以用來登錄的?RSA/DSA?公鑰。該指令中可以使用下列根據連接時的實際情況進行展開的符號:%%?表示'%'、%h?表示用戶的主目錄、%u?表示該用戶的用戶名。經過擴展之后的值必須要么是絕對路徑,要么是相對于用戶主目錄的相對路徑。默認值是".ssh/authorized_keys"。?????Banner將這個指令指定的文件中的內容在用戶進行認證前顯示給遠程用戶。這個特性僅能用于SSH-2,默認什么內容也不顯示。"none"表示禁用這個特性。?????ChallengeResponseAuthentication是否允許質疑-應答(challenge-response)認證。默認值是"yes"。所有?login.conf(5)?中允許的認證方式都被支持。?????Ciphers指定SSH-2允許使用的加密算法。多個算法之間使用逗號分隔。可以使用的算法如下:"aes128-cbc",?"aes192-cbc",?"aes256-cbc",?"aes128-ctr",?"aes192-ctr",?"aes256-ctr","3des-cbc",?"arcfour128",?"arcfour256",?"arcfour",?"blowfish-cbc",?"cast128-cbc"默認值是可以使用上述所有算法。?????ClientAliveCountMaxsshd(8)?在未收到任何客戶端回應前最多允許發送多少個"alive"消息。默認值是?3?。到達這個上限后,sshd(8)?將強制斷開連接、關閉會話。需要注意的是,"alive"消息與?TCPKeepAlive?有很大差異。"alive"消息是通過加密連接發送的,因此不會被欺騙;而?TCPKeepAlive?卻是可以被欺騙的。如果?ClientAliveInterval?被設為?15?并且將?ClientAliveCountMax?保持為默認值,那么無應答的客戶端大約會在45秒后被強制斷開。這個指令僅可以用于SSH-2協議。?????ClientAliveInterval設置一個以秒記的時長,如果超過這么長時間沒有收到客戶端的任何數據,sshd(8)?將通過安全通道向客戶端發送一個"alive"消息,并等候應答。默認值?0?表示不發送"alive"消息。這個選項僅對SSH-2有效。?????Compression是否對通信數據進行加密,還是延遲到認證成功之后再對通信數據加密。可用值:"yes",?"delayed"(默認),?"no"。?????DenyGroups這個指令后面跟著一串用空格分隔的組名列表(其中可以使用"*"和"?"通配符)。默認允許所有組登錄。如果使用了這個指令,那么這些組中的成員將被拒絕登錄。這里的"組"是指"主組"(primary?group),也就是/etc/passwd文件中指定的組。這里只允許使用組的名字而不允許使用GID。相關的?allow/deny?指令按照下列順序處理:?????????????DenyUsers,?AllowUsers,?DenyGroups,?AllowGroupsDenyUsers這個指令后面跟著一串用空格分隔的用戶名列表(其中可以使用"*"和"?"通配符)。默認允許所有用戶登錄。如果使用了這個指令,那么這些用戶將被拒絕登錄。如果指定了?USER@HOST?模式的用戶,那么?USER?和?HOST?將同時被檢查。這里只允許使用用戶的名字而不允許使用UID。相關的?allow/deny?指令按照下列順序處理:?????????????DenyUsers,?AllowUsers,?DenyGroups,?AllowGroupsForceCommand強制執行這里指定的命令而忽略客戶端提供的任何命令。這個命令將使用用戶的登錄shell執行(shell?-c)。這可以應用于?shell?、命令、子系統的完成,通常用于?Match?塊中。這個命令最初是在客戶端通過?SSH_ORIGINAL_COMMAND?環境變量來支持的。?????GatewayPorts是否允許遠程主機連接本地的轉發端口。默認值是"no"。sshd(8)?默認將遠程端口轉發綁定到loopback地址。這樣將阻止其它遠程主機連接到轉發端口。?????????????GatewayPorts?指令可以讓?sshd?將遠程端口轉發綁定到非loopback地址,這樣就可以允許遠程主機連接了。"no"表示僅允許本地連接,"yes"表示強制將遠程端口轉發綁定到統配地址(wildcard?address),"clientspecified"表示允許客戶端選擇將遠程端口轉發綁定到哪個地址。?????GSSAPIAuthentication是否允許使用基于?GSSAPI?的用戶認證。默認值為"no"。僅用于SSH-2。?????GSSAPICleanupCredentials是否在用戶退出登錄后自動銷毀用戶憑證緩存。默認值是"yes"。僅用于SSH-2。?????HostbasedAuthentication這個指令與?RhostsRSAAuthentication?類似,但是僅可以用于SSH-2。推薦使用默認值"no"。推薦使用默認值"no"禁止這種不安全的認證方式。?????HostbasedUsesNameFromPacketOnly在開啟?HostbasedAuthentication?的情況下,指定服務器在使用?~/.shosts?~/.rhosts?/etc/hosts.equiv?進行遠程主機名匹配時,是否進行反向域名查詢。"yes"表示?sshd(8)?信任客戶端提供的主機名而不進行反向查詢。默認值是"no"。?????HostKey主機私鑰文件的位置。如果權限不對,sshd(8)?可能會拒絕啟動。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。?????IgnoreRhosts是否在?RhostsRSAAuthentication?或?HostbasedAuthentication?過程中忽略?.rhosts?和?.shosts?文件。不過?/etc/hosts.equiv?和?/etc/shosts.equiv?仍將被使用。推薦設為默認值"yes"。?????IgnoreUserKnownHosts是否在?RhostsRSAAuthentication?或?HostbasedAuthentication?過程中忽略用戶的?~/.ssh/known_hosts?文件。默認值是"no"。為了提高安全性,可以設為"yes"。?????KerberosAuthentication是否要求用戶為?PasswordAuthentication?提供的密碼必須通過?Kerberos?KDC?認證,也就是是否使用Kerberos認證。要使用Kerberos認證,服務器需要一個可以校驗?KDC?identity?的?Kerberos?servtab?。默認值是"no"。?????KerberosGetAFSToken如果使用了?AFS?并且該用戶有一個?Kerberos?5?TGT,那么開啟該指令后,將會在訪問用戶的家目錄前嘗試獲取一個?AFS?token?。默認為"no"。?????KerberosOrLocalPasswd如果?Kerberos?密碼認證失敗,那么該密碼還將要通過其它的認證機制(比如?/etc/passwd)。默認值為"yes"。?????KerberosTicketCleanup是否在用戶退出登錄后自動銷毀用戶的?ticket?。默認值是"yes"。?????KeyRegenerationInterval在SSH-1協議下,短命的服務器密鑰將以此指令設置的時間為周期(秒),不斷重新生成。這個機制可以盡量減小密鑰丟失或者******造成的損失。設為?0?表示永不重新生成,默認為?3600(秒)。?????ListenAddress指定?sshd(8)?監聽的網絡地址,默認監聽所有地址。可以使用下面的格式:???????????????????ListenAddress?host|IPv4_addr|IPv6_addrListenAddress?host|IPv4_addr:portListenAddress?[host|IPv6_addr]:port如果未指定?port?,那么將使用?Port?指令的值。可以使用多個?ListenAddress?指令監聽多個地址。?????LoginGraceTime限制用戶必須在指定的時限內認證成功,0?表示無限制。默認值是?120?秒。?????LogLevel指定?sshd(8)?的日志等級(詳細程度)。可用值如下:QUIET,?FATAL,?ERROR,?INFO(默認),?VERBOSE,?DEBUG,?DEBUG1,?DEBUG2,?DEBUG3DEBUG?與?DEBUG1?等價;DEBUG2?和?DEBUG3?則分別指定了更詳細、更羅嗦的日志輸出。比?DEBUG?更詳細的日志可能會泄漏用戶的敏感信息,因此反對使用。?????MACs指定允許在SSH-2中使用哪些消息摘要算法來進行數據校驗。可以使用逗號分隔的列表來指定允許使用多個算法。默認值(包含所有可以使用的算法)是:hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160,hmac-sha1-96,hmac-md5-96?????Match引入一個條件塊。塊的結尾標志是另一個?Match?指令或者文件結尾。如果?Match?行上指定的條件都滿足,那么隨后的指令將覆蓋全局配置中的指令。?????????????Match?的值是一個或多個"條件-模式"對。可用的"條件"是:User,?Group,?Host,?Address?。只有下列指令可以在?Match?塊中使用:AllowTcpForwarding,?Banner,?????????????ForceCommand,?GatewayPorts,?GSSApiAuthentication,?????????????KbdInteractiveAuthentication,?KerberosAuthentication,?????????????PasswordAuthentication,?PermitOpen,?PermitRootLogin,?????????????RhostsRSAAuthentication,?RSAAuthentication,?X11DisplayOffset,?????????????X11Forwarding,?X11UseLocalHostMaxAuthTries指定每個連接最大允許的認證次數。默認值是?6?。如果失敗認證的次數超過這個數值的一半,連接將被強制斷開,且會生成額外的失敗日志消息。?????MaxStartups最大允許保持多少個未認證的連接。默認值是?10?。到達限制后,將不再接受新連接,除非先前的連接認證成功或超出?LoginGraceTime?的限制。?????PasswordAuthentication是否允許使用基于密碼的認證。默認為"yes"。?????PermitEmptyPasswords是否允許密碼為空的用戶遠程登錄。默認為"no"。?????PermitOpen指定TCP端口轉發允許的目的地,可以使用空格分隔多個轉發目標。默認允許所有轉發請求。合法的指令格式如下:???????????????????PermitOpen?host:portPermitOpen?IPv4_addr:portPermitOpen?[IPv6_addr]:port"any"可以用于移除所有限制并允許一切轉發請求。?????PermitRootLogin是否允許?root?登錄。可用值如下:"yes"(默認)?表示允許。"no"表示禁止。"without-password"表示禁止使用密碼認證登錄。"forced-commands-only"表示只有在指定了?command?選項的情況下才允許使用公鑰認證登錄。同時其它認證方法全部被禁止。這個值常用于做遠程備份之類的事情。?????PermitTunnel是否允許?tun(4)?設備轉發。可用值如下:"yes",?"point-to-point"(layer?3),?"ethernet"(layer?2),?"no"(默認)。"yes"同時蘊含著"point-to-point"和"ethernet"。?????PermitUserEnvironment指定是否允許?sshd(8)?處理?~/.ssh/environment?以及?~/.ssh/authorized_keys?中的?environment=?選項。默認值是"no"。如果設為"yes"可能會導致用戶有機會使用某些機制(比如?LD_PRELOAD)繞過訪問控制,造成安全漏洞。?????PidFile指定在哪個文件中存放SSH守護進程的進程號,默認為?/var/run/sshd.pid?文件。?????Port指定?sshd(8)?守護進程監聽的端口號,默認為?22?。可以使用多條指令監聽多個端口。默認將在本機的所有網絡接口上監聽,但是可以通過?ListenAddress?指定只在某個特定的接口上監聽。?????PrintLastLog指定?sshd(8)?是否在每一次交互式登錄時打印最后一位用戶的登錄時間。默認值是"yes"。?????PrintMotd指定?sshd(8)?是否在每一次交互式登錄時打印?/etc/motd?文件的內容。默認值是"yes"。?????Protocol指定?sshd(8)?支持的SSH協議的版本號。'1'和'2'表示僅僅支持SSH-1和SSH-2協議。"2,1"表示同時支持SSH-1和SSH-2協議。?????PubkeyAuthentication是否允許公鑰認證。僅可以用于SSH-2。默認值為"yes"。?????RhostsRSAAuthentication是否使用強可信主機認證(通過檢查遠程主機名和關聯的用戶名進行認證)。僅用于SSH-1。這是通過在RSA認證成功后再檢查?~/.rhosts?或?/etc/hosts.equiv?進行認證的。出于安全考慮,建議使用默認值"no"。?????RSAAuthentication是否允許使用純?RSA?公鑰認證。僅用于SSH-1。默認值是"yes"。?????ServerKeyBits指定臨時服務器密鑰的長度。僅用于SSH-1。默認值是?768(位)。最小值是?512?。?????StrictModes指定是否要求?sshd(8)?在接受連接請求前對用戶主目錄和相關的配置文件進行宿主和權限檢查。強烈建議使用默認值"yes"來預防可能出現的低級錯誤。?????Subsystem配置一個外部子系統(例如,一個文件傳輸守護進程)。僅用于SSH-2協議。值是一個子系統的名字和對應的命令行(含選項和參數)。比如"sft?/bin/sftp-server"。?????SyslogFacility指定?sshd(8)?將日志消息通過哪個日志子系統(facility)發送。有效值是:DAEMON,?USER,?AUTH(默認),?LOCAL0,?LOCAL1,?LOCAL2,?LOCAL3,?LOCAL4,?LOCAL5,?LOCAL6,?LOCAL7?????TCPKeepAlive指定系統是否向客戶端發送?TCP?keepalive?消息。默認值是"yes"。這種消息可以檢測到死連接、連接不當關閉、客戶端崩潰等異常。可以設為"no"關閉這個特性。?????UseDNS指定?sshd(8)?是否應該對遠程主機名進行反向解析,以檢查此主機名是否與其IP地址真實對應。默認值為"yes"。?????UseLogin是否在交互式會話的登錄過程中使用?login(1)?。默認值是"no"。如果開啟此指令,那么?X11Forwarding?將會被禁止,因為?login(1)?不知道如何處理?xauth(1)?cookies?。需要注意的是,login(1)?是禁止用于遠程執行命令的。如果指定了?UsePrivilegeSeparation?,那么它將在認證完成后被禁用。?????UsePrivilegeSeparation是否讓?sshd(8)?通過創建非特權子進程處理接入請求的方法來進行權限分離。默認值是"yes"。認證成功后,將以該認證用戶的身份創建另一個子進程。這樣做的目的是為了防止通過有缺陷的子進程提升權限,從而使系統更加安全。?????X11DisplayOffset指定?sshd(8)?X11?轉發的第一個可用的顯示區(display)數字。默認值是?10?。這個可以用于防止?sshd?占用了真實的?X11?服務器顯示區,從而發生混淆。?????X11Forwarding是否允許進行?X11?轉發。默認值是"no",設為"yes"表示允許。如果允許X11轉發并且sshd(8)代理的顯示區被配置為在含有通配符的地址(X11UseLocalhost)上監聽。那么將可能有額外的信息被泄漏。由于使用X11轉發的可能帶來的風險,此指令默認值為"no"。需要注意的是,禁止X11轉發并不能禁止用戶轉發X11通信,因為用戶可以安裝他們自己的轉發器。如果啟用了?UseLogin?,那么X11轉發將被自動禁止。?????X11UseLocalhostsshd(8)?是否應當將X11轉發服務器綁定到本地loopback地址。默認值是"yes"。sshd?默認將轉發服務器綁定到本地loopback地址并將?DISPLAY?環境變量的主機名部分設為"localhost"。這可以防止遠程主機連接到?proxy?display?。不過某些老舊的X11客戶端不能在此配置下正常工作。為了兼容這些老舊的X11客戶端,你可以設為"no"。?????XAuthLocation指定?xauth(1)?程序的絕對路徑。默認值是?/usr/X11R6/bin/xauth時間格式在?sshd(8)?命令行參數和配置文件中使用的時間值可以通過下面的格式指定:time[qualifier]?。其中的?time?是一個正整數,而?qualifier?可以是下列單位之一:<無>????秒???????????s?|?S???秒???????????m?|?M???分鐘???????????h?|?H???小時???????????d?|?D???天???????????w?|?W???星期可以通過指定多個數值來累加時間,比如:1h30m???1?小時?30?分鐘?(90?分鐘)文件/etc/ssh/sshd_configsshd(8)?的主配置文件。這個文件的宿主應當是root,權限最大可以是"644"。

轉載出處:http://www.2cto.com/os/201401/272738.html

轉載于:https://blog.51cto.com/aaroncao/1665267

總結

以上是生活随笔為你收集整理的sshd_config配置详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。