详解SSH客户端配置文件.docx
- 文档编号:11470452
- 上传时间:2023-03-01
- 格式:DOCX
- 页数:42
- 大小:2.13MB
详解SSH客户端配置文件.docx
《详解SSH客户端配置文件.docx》由会员分享,可在线阅读,更多相关《详解SSH客户端配置文件.docx(42页珍藏版)》请在冰豆网上搜索。
详解SSH客户端配置文件
详解SSH客户端配置文件:
ssh_config
ssh_config客户端配置文件
关健字
使用条件
作用
Host
只对能够匹配后面字串的计算机有效,“*”表示所有的计算机
ForwardAgent
设置连接是否要经过验证代理
如果设置值为”no”,表示不经过验证代理,如果设置值为“yes”,表示连接先经过验证代理,然后再转发给远程计算机
ForwardX11
设置X11连接是否被自动重定向到安全的通道和显示集(DISPLAYset),该选项的设置值可以是:
“yes”或”no”,默认值为“no”
注意:
为了防止会话被劫持,建议设置值为:
”no”
RhostsRSAAuthentication
只支持SSHv1协议
设置是否只用~/.ssh/rhosts或/etc/hosts.equiv进行安全验证,该选项的设置值可以是:
”yes”或“no”,默认值为”no”,为了安全建议设置值为:
”no”
RSAAuthentication
只支持SSHv1协议
设置是否使用纯RSA算法进行安全验证,该选项的设置值可以是:
”yes” 或“no”,默认值为”yes”
HostbasedAuthentication
只支持SSHv2协议
设置是否使用~/.ssh/rhosts或/etc/hosts.equiv并配合RSA算法进行安全验证,该选项的设置值可以是:
”yes” 或“no”,默认值为”no”,为了安全建议设置值为:
”no”
PasswordAuthentication
设置是否使用基于口令论证,该选项的设置值可以是“yes” 或 “no”
GSSAPIAuthentication
只支持SSHv2协议
是否允许使用基于 GSSAPI 的用户认证。
默认值为”no”
GSSAPIDelegateCredentials
只支持SSHv2协议
是否使用GSSAPI 的用户认证来代表与服务器之间信息,默认值为:
“no”
BatchMode
如果设为“yes”,passphrase/password(交互式输入口令)的提示将被禁止。
当不能交互式输入口令的时候,这个选项对脚本文件和批处理任务十分有用
CheckHostIP
设置SSH是否查看连接到服务器的主机的IP地址来防止DNS欺骗,建议值为”yes”
AddressFamily
指定sshd应当使用哪种地址族
ConnectTimeout
设置连接超时,而不使用默认的系统的TCP超时时间,默认值为:
0
StrictHostKeyChecking
如果设置为yes,SSH就不会自动把计算机的密匙加入$HOME/.ssh/known_hosts文件,并且一旦计算机的密匙发生变化,就拒绝连接。
设置值可以是:
“yes”或“no”或”ask”,默认值为:
ask
IdentityFile
设置从哪个文件中读取用户的RSA/DSA安全验证标识
使用SSHv1协议时:
IdentityFile ~/.ssh/identity
使用SSHv2协议时:
IdentityFile ~/.ssh/id_rsa
IdentityFile ~/.ssh/id_dsa
Port
设置客户端连接到远程SSH服务器的端口
Protocol
设置客户端使用的SSH协议版本
Cipher
只支持SSHv1
设置使用SSHv1协议时,加密会话的加密算法,可以使用如下几种:
“blowfish”, “3des”, “des
Ciphers
只支持SSHv2
指定SSH-2允许使用的加密算法。
多个算法之间使用逗号分隔。
可以使用的算法如下:
“aes128-cbc”, “aes192-cbc”, “aes256-cbc”, “aes128-ctr”, “aes192-ctr”, “aes256-ctr”, “3des-cbc”, “arcfour128″, “arcfour256″, “arcfour”, “blowfish-cbc”, “cast128-cbc”
默认值是可以使用上述所有算法
EscapeChar
设置escape字符,默认值为:
~
Compression
是否对通信数据进行加密,还是延迟到认证成功之后再对通信数据加密。
可用值:
”yes”, “delayed”(默认), “no”
DenyGroups
这个指令后面跟着一串用空格分隔的组名列表(其中可以使用”*”和”?
”通配符)。
默认允许所有组登录。
如果使用了这个指令,那么这些组中的成员将被拒绝登录。
这里的”组”是指”主组”(primarygroup),也就是/etc/passwd文件中指定的组。
这里只允许使用组的名字而不允许使用GID。
相关的allow/deny 指令按照下列顺序处理:
DenyUsers->AllowUsers->DenyGroups->AllowGroups
DenyUsers
这个指令后面跟着一串用空格分隔的用户名列表(其中可以使用”*”和”?
”通配符)。
默认允许所有用户登录。
如果使用了这个指令,那么这些用户将被拒绝登录。
如果指定了 USER@HOST 模式的用户,那么 USER 和 HOST 将同时被检查。
这里只允许使用用户的名字而不允许使用UID。
相关的 allow/deny 指令按照下列顺序处理:
DenyUsers->AllowUsers->DenyGroups->AllowGroups
ForceCommand
强制执行这里指定的命令而忽略客户端提供的任何命令。
这个命令将使用用户的登录shell执行(shell-c)。
这可以应用于 shell 、命令、子系统的完成,通常用于 Match 块中。
这个命令最初是在客户端通过 SSH_ORIGINAL_COMMAND 环境变量来支持的
GatewayPorts
是否允许远程主机连接本地的转发端口。
默认值是”no”。
sshd(8) 默认将远程端口转发绑定到loopback地址。
这样将阻止其它远程主机连接到转发端口。
GatewayPorts 指令可以让 sshd 将远程端口转发绑定到非loopback地址,这样就可以允许远程主机连接了。
“no”表示仅允许本地连接,”yes”表示强制将远程端口转发绑定到统配地址(wildcardaddress),
“clientspecified”表示允许客户端选择将远程端口转发绑定到哪个地址
GSSAPIAuthentication
只支持SSHv2协议
是否允许使用基于 GSSAPI 的用户认证。
默认值为”no”
GSSAPICleanupCredentials
只支持SSHv2协议
是否在用户退出登录后自动销毁用户凭证缓存。
默认值是”yes”
HostbasedAuthentication
只支持SSHv2协议
这个指令与 RhostsRSAAuthentication 类似,推荐使用默认值”no”不禁止这种不安全的认证方式
HostbasedUsesNameFromPacketOnly
在开启 HostbasedAuthentication 的情况下,
指定服务器在使用 ~/.shosts~/.rhosts/etc/hosts.equiv 进行远程主机名匹配时,是否进行反向域名查询。
“yes”表示 sshd(8) 信任客户端提供的主机名而不进行反向查询。
默认值是”no”
HostKey
主机私钥文件的位置。
如果权限不对,sshd(8) 可能会拒绝启动。
SSHv1默认是:
/etc/ssh/ssh_host_key 。
SSHv2默认是:
/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 提供的密码必须通过 KerberosKDC 认证,也就是是否使用Kerberos认证。
要使用Kerberos认证,服务器需要一个可以校验 KDCidentity 的 Kerberosservtab 。
默认值是”no”
KerberosGetAFSToken
如果使用了 AFS 并且该用户有一个 Kerberos5TGT,那么开启该指令后,将会在访问用户的家目录前尝试获取一个 AFStoken 。
默认为”no”
KerberosOrLocalPasswd
如果 Kerberos 密码认证失败,那么该密码还将要通过其它的认证机制(比如 /etc/passwd)。
默认值为”yes”
KerberosTicketCleanup
是否在用户退出登录后自动销毁用户的 ticket 。
默认值是”yes”
KeyRegenerationInterval
只支持SSHv1协议
在SSH-1协议下,短命的服务器密钥将以此指令设置的时间为周期(秒),不断重新生成。
这个机制可以尽量减小密钥丢失或者黑客攻击造成的损失。
设为 0 表示永不重新生成,默认为 3600(秒)
ListenAddress
指定 sshd(8) 监听的网络地址,默认监听所有地址。
可以使用下面的格式:
ListenAddress host 或 IPV4 或IPv6
ListenAddress host :
port
ListenAddress IPv4 :
port 或 IPv6 :
port
如果未指定 port ,那么将使用 Port 指令的值
可以使用多个 ListenAddress 指令监听多个地址,如果使用多个地址,那么有指定port的要优先被监听
LoginGraceTime
限制用户必须在指定的时限内认证成功,0 表示无限制。
默认值是 120 秒
LogLevel
指定 sshd(8) 的日志等级(详细程度)。
可用值如下:
QUIET, FATAL, ERROR, INFO(默认), VERBOSE, DEBUG, DEBUG1, DEBUG2,DEBUG3
DEBUG 与 DEBUG1 等价;DEBUG2 和 DEBUG3 则分别指定了更详细、更罗嗦的日志输出。
比 DEBUG 更详细的日志可能会泄漏用户的敏感信息,因此反对使用
MACs
只支持SSHv2协议
指定允许在SSH-2中使用哪些消息摘要算法来进行数据校验。
可以使用逗号分隔的列表来指定允许使用多个算法。
默认值(包含所有可以使用的算法)是:
hmac-md5,hmac-sha1,umac-64@,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, X11UseLocalHost
MaxAuthTries
指定每个连接最大允许的认证次数。
默认值是 6 。
如果失败认证的次数超过这个数值的一半,连接将被强制断开,且会生成额外的失败日志消息
MaxSessions
指定每个网络连接允许打开会话的最大数目。
默认值为10
MaxStartups
最大允许保持多少个未认证的连接。
默认值是 10 。
到达限制后,将不再接受新连接,除非先前的连接认证成功或超出 LoginGraceTime 的限制
PasswordAuthentication
是否允许使用基于密码的认证。
默认为”yes”
PermitEmptyPasswords
是否允许密码为空的用户远程登录。
默认为”no”
PermitOpen
指定TCP端口转发允许的目的地,可以使用空格分隔多个转发目标。
默认允许所有转发请求。
合法的指令格式如下:
PermitOpenhost:
port
PermitOpenIPv4_addr:
port
PermitOpen[IPv6_addr]:
port
“any”可以用于移除所有限制并允许一切转发请求
PermitRootLogin
是否允许 root 登录。
可用值如下:
“yes”(默认) 表示允许。
”no”表示禁止。
“without-password”表示禁止使用密码认证登录。
“forced-commands-only”表示只有在指定了 command 选项的情况下才允许使用公钥认证登录。
同时其它认证方法全部被禁止。
这个值常用于做远程备份之类的事情
PermitTunnel
是否允许 tun(4) 设备转发。
可用值如下:
“yes”, “point-to-point”(layer3), “ethernet”(layer2), “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
只支持SSHv2协议
是否允许公钥认证。
默认值为”yes”
RhostsRSAAuthentication
只支持SSHv1协议
是否使用强可信主机认证(通过检查远程主机名和关联的用户名进行认证)
这是通过在RSA认证成功后再检查 ~/.rhosts 或 /etc/hosts.equiv 进行认证的。
出于安全考虑,建议使用默认值”no”
RSAAuthentication
只支持SSHv1协议
是否允许使用纯 RSA 公钥认证。
默认值是”yes”
ServerKeyBits
只支持SSHv1协议
指定临时服务器密钥的长度。
仅用于SSH-1。
默认值是 1024(位)。
最小值是 512
StrictModes
指定是否要求 sshd(8) 在接受连接请求前对用户主目录和相关的配置文件进行宿主和权限检查。
强烈建议使用默认值”yes”来预防可能出现的低级错误
Subsystem
只支持SSHv2协议
配置一个外部子系统(例如,一个文件传输守护进程)。
值是一个子系统的名字和对应的命令行(含选项和参数)。
比如”sft/bin/sftp-server”
SyslogFacility
指定 sshd(8) 将日志消息通过哪个日志子系统(facility)发送。
有效值是:
DAEMON, USER, AUTH(默认), LOCAL0, LOCAL1, LOCAL2, LOCAL3, LOCAL4,LOCAL5, LOCAL6, LOCAL7
TCPKeepAlive
指定系统是否向客户端发送 TCPkeepalive 消息。
默认值是”yes”。
这种消息可以检测到死连接、连接不当关闭、客户端崩溃等异常。
可以设为”no”关闭这个特性。
UseDNS
指定 sshd(8) 是否应该对远程主机名进行反向解析(IP->DNS),以检查此主机名是否与其IP地址真实对应。
默认值为”yes”
UseLogin
是否在交互式会话的登录过程中使用 login
(1) 。
默认值是”no”。
如果开启此指令,那么 X11Forwarding 将会被禁止,因为 login
(1) 不知道如何处理 xauth
(1)cookies 。
需要注意的是,login
(1) 是禁止用于远程执行命令的。
如果指定了 UsePrivilegeSeparation ,那么它将在认证完成后被禁用
UsePAM
启用PAM(PluggableAuthenticationModule:
插入式验证模块)接口。
如果该指令的值设置为”yes”,那么表示启用PAM并运用ChallengeResponseAuthenticationandPasswordAuthentication 到PAM模块和会话过程
由于PAM的身份验证,通常相当于密码验证,所以你应该禁用PasswordAuthentication 或者 ChallengeResponseAuthentication
如果启用了PAM,那么必须使用root才能运行sshd,默认值为no
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转发将被自动禁止
X11UseLocalhost
sshd(8) 是否应当将X11转发服务器绑定到本地loopback地址。
默认值是”yes”
sshd 默认将转发服务器绑定到本地loopback地址并将 DISPLAY 环境变量的主机名部分设为”localhost”。
这可以防止远程主机连接到 proxydisplay 。
不过某些老旧的X11客户端不能在此配置下正常工作。
为了兼容这些老旧的X11客户端,你可以设为”no”
XAuthLocation
指定 xauth
(1) 程序的绝对路径。
默认值是 /usr/X11R6/bin/xauth
TimeFormats
在 sshd(8) 命令行参数和配置文件中使用的时间值可以通过下面的格式指定:
time[qualifier] 。
其中的 time 是一个正整数,而 qualifier 可以是下列单位之一:
<无>-----------------秒
s|S-----------------秒
m|M---------------分钟
h|H----------------小时
d|D-----------------天
w|W----------------星期
可以通过指定多个数值来累加时间,比如:
1h30m 1 小时 30 分钟 (90 分钟)
一、了解RSA
二、什么是SSH
三、SSH协议的内容
四、SSH协议的安全验证
五、SSH的应用
六、开始配置SSH服务器
1、首先确认系统已经安装了以下两个包
[root@localhost~]#rpm-qa|grep"zlib-[0-9]"(zlib包至少为1.1.4版本)
[root@localhost~]#rpm-qa|grep"openssl-[0-9]"(openssl包至少为0.9.6版本)
2、下载并安装openssh安装包
1)下载OpenSSH
(1)官方网:
www.openssh.org
(2)下载当前最新版:
OpenSSH5.3/5.3p1
[root@localhost~]#wgetftp:
//mirror.mcs.anl.gov/pub/openssh/portable/openssh-5.3p1.tar.gz
2)安装OpenSSH(具体看OpenSSH.tar.gz包中的INSTALL文件)
[root@localhost~]#tar-zxvfopenssh-5.3p1.tar.gz;cdopenssh-5.3p1
[root@localhostopenssh-5.3p1]#touchrun.sh;chmodu+xrun.sh
然后在run.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 详解 SSH 客户端 配置文件
![提示](https://static.bdocx.com/images/bang_tan.gif)