天天看点

ssh_config和sshd_config的区别

 ssh_config和sshd_config都是ssh服务器的配置文件,二者区别在于,前者是针对客户端的配置文件,后者则是针对服务端的配置文件。两个配置文件都允许你通过设置不同的选项来改变客户端程序的运行方式。下面列出来的是两个配置文件中最重要的一些关键词,每一行为“关键词&值”的形式,其中“关键词”是忽略大小写的。

================================================客户端===================================================

1、编辑 /etc/ssh/ssh_config 文件

# Site-wide defaults for various options

   Host *

        ForwardAgent no

        ForwardX11 no

        RhostsAuthentication no

        RhostsRSAAuthentication no

        RSAAuthentication yes

        PasswordAuthentication yes

        FallBackToRsh no

        UseRsh no

        BatchMode no

        CheckHostIP yes

        StrictHostKeyChecking no

        IdentityFile ~/.ssh/identity

        Port 22

        Cipher blowfish

        EscapeChar

下面对上述选项参数逐进行解释:

带“#”表示该句为注释不起作,该句不属于配置文件原文,意在说明下面选项均为系统初始默认的选项。说明一下,实际配置文件中也有很多选项前面加有“#”注释,虽然表示不起作用,其实是说明此为系统默认的初始化设置。

Host *

"Host"只对匹配后面字串的计算机有效,“*”表示所有的计算机。从该项格式前置一些可以看出,这是一个类似于全局的选项,表示下面缩进的选项都适用于该设置,可以指定某计算机替换*号使下面选项只针对该算机器生效。

ForwardAgent no

"ForwardAgent"设置连接是否经过验证代理(如果存在)转发给远程计算机。

ForwardX11 no

"ForwardX11"设置X11连接是否被自动重定向到安全的通道和显示集(DISPLAY set)。

RhostsAuthentication no

"RhostsAuthentication"设置是否使用基于rhosts的安全验证。

RhostsRSAAuthentication no

"RhostsRSAAuthentication"设置是否使用用RSA算法的基于rhosts的安全验证。

RSAAuthentication yes

"RSAAuthentication"设置是否使用RSA算法进行安全验证。

PasswordAuthentication yes

"PasswordAuthentication"设置是否使用口令验证。

FallBackToRsh no

"FallBackToRsh"设置如果用ssh连接出现错误是否自动使用rsh,由于rsh并不安全,所以此选项应当设置为"no"。

UseRsh no

"UseRsh"设置是否在这台计算机上使用"rlogin/rsh",原因同上,设为"no"。

BatchMode no

"BatchMode":批处理模式,一般设为"no";如果设为"yes",交互式输入口令的提示将被禁止,这个选项对脚本文件和批处理任务十分有用。

CheckHostIP yes

"CheckHostIP"设置ssh是否查看连接到服务器的主机的IP地址以防止DNS欺骗。建议设置为"yes"。

StrictHostKeyChecking no

"StrictHostKeyChecking"如果设为"yes",ssh将不会自动把计算机的密匙加入"$HOME/.ssh/known_hosts"文件,且一旦计算机的密匙发生了变化,就拒绝连接。

IdentityFile ~/.ssh/identity

"IdentityFile"设置读取用户的RSA安全验证标识。

Port 22

"Port"设置连接到远程主机的端口,ssh默认端口为22。

Cipher blowfish

“Cipher”设置加密用的密钥,blowfish可以自己随意设置。

EscapeChar 

“EscapeChar”设置escape字符。

==================================服务器端===================================================

ssh的端口号:Port 22

限制访问

#AddressFamily any :设置地址簇,ipv4地址,还是ipv6地址,还是any所有

#ListenAddress 0.0.0.0:设置监听地址

#ListenAddress ::

#Protocol 2:控制使用OpenSSH版本的顺序

Version1使用rsa算法的密钥位置:HostKey /etc/ssh/ssh_host_rsa_key

Version2使用rsa算法的密钥位置:HostKey  /etc/ssh/ssh_host_rsa_key

Version2使用dsa算法的密钥位置:HostKey  /etc/ssh/ssh_host_dsa_key

Version2使用ecdsa算法的密钥位置:HostKey /etc/ssh/ssh_host_ecdsa_key

#KeyRehenerationInterval 1h:Version1的密钥更新周期

#ServerKeyBits 1024 :Version1的密钥长度(位)

#RekeyLimit default none:密钥限制,默认没有

#SyslogFacility AUTH:通过AUTH发送日志

SyslogFacility AUTHPRIV:通过AUTHPRIV发送日志

#LogLevel INFO:日志级别

#LoginGraceTime 2m :登录连接时长2分钟

#PermitRootLogin yes:允许管理员身份登录

#StrictModes yes:登录之前检查用户家目录和rhost文件的权限和所有权

#MaxAuthTries 6:认证次数

#Maxsessions 10:最大连接数

#RSAAuthentication yes:只允许RSA认证

#PubkeyAuthentication yes:公钥认证

#AuthorizedKeysFile .ssh/authorized_keys :存放远程复制来的公钥的文件

#AuthorizedPrincipalsFile none:发送欢迎词的文件,none表示不发送

#AuthorizedKeysCommand:是否允许authorized_keys中使用command项

#AuthorizedKeysCommandUser nobody:限制能够在authorized_keys中使用command项的用户

#RhostsRSAAuthenrication no :是否开启基于rhosts的主机RSA算法认证,密钥存放于/etc/ssh/ssh_kown_hosts

#HostbasedAuthentication no:是否开启基于主机的密钥认证

#IgnoreUserKnownHosts no:设置是否忽略主机用户识别,前提是/.ssh/kown_hosts是否可信

#IgnoreRhosts yes:不查询用户主目录下的/.rhosts和/.shosts文件

#PasswordAuthentication yes :使用口令认证方式登录

#PermitEmptyPasswords no :使用空口令登录

ChallengeResponseAuthentication no:不开启质疑-应答认证

#Kerberos 选项:要使用Kerberos认证,服务器需要一个可以校验 KDC identity 的 Kerberos servtab 。

#KerberosAuthentication no:是否允许使用基于 Kerberos的用户认证。默认值为”no”。仅用于SSH-2。

#KerberosOrLocalPasswd yes:如果 Kerberos 密码认证失败,那么该密码还将要通过其它的认证机制(比如 /etc/passwd)。默认值为”yes”。

#KerberosGetAFSToken no:如果使用了 AFS 并且该用户有一个 Kerberos 5 TGT,那么开启该指令后,将会在访问用户的家目录前尝试获取一个 AFS token 。默认为”no”。

#KerberosTicketCleanup yes:是否在用户退出登录后自动销毁用户的 ticket 。默认值是”yes”

#KerberosUseKuserok yes

#GSSAPI 选项

#GSSAPIAuthentication no:是否允许使用基于 GSSAPI 的用户认证。默认值为”no”。仅用于SSH-2。

#GSSAPICleanupCredentials yes:是否在用户退出登录后自动销毁用户凭证缓存。默认值是”yes”。#GSSAPIStrictAcceptorCheck yes:是否对接收到的用户凭证严格校验

#GSSAPIKeyExchange no:是否开启密钥交换

UsePAM yes:启用pam认证

#AllowAgentForwarding yes

#AllowTcpFowarding yes:允许TCP转发

#GatewayPorts no:转发路径端口

#X11Forwarding no:是否开启X11转发

#X11DisplayOffset 10:设置转发的可显示区数字为10

#X11UseLocalhost yes:是否将X11的转发服务器地址保存到loopback地址

#PrintMotd yes:设置登录后是否显示/etc/motd文件中的信息

#PrintLastLog yes:设置登录后是否显示上一次登录时间

#TCPKeepAlive yes:keepalive检测

#UseLogin no:是否在交互式登录时启用login

UsePrivilegeSeparation sandbox :是否让 sshd(8)通过创建非特权子进程处理接入请求的方法来进行权限分离 默认值是”yes

#PermitUserEnviroment no:指定是否允许 sshd(8) 处理 ~/.ssh/environment 以及~/.ssh/authorized_keys 中的 environment= 选项。默认值是”no”。

#Compression delayed:是否对通信数据进行加密,还是延迟到认证成功之后再对通信数据加密 可用值:”yes” “delayed”(默认) “no”

#ClientAliveInterval 0:设置空闲登录的最大时长

#ClientAliveCountMax 3:在没收到任何数据的时候,最多向3个客户端进行keepalive检测

#ShowPatchLevel no:显示补丁级别

#UseDNS yes:开启域名解析

#PidFile /var/run/ssh.pid:存放守护进程的默认文件

#MaxStartups 10:30:100:最大可以保持多少个未认证的连接

#PermitTunnel no:允许tun设备转发

#ChrootDirectory none:是否允许切换目录

#VersionAddendum none:配置附加版本

#Banner none:不设置欢迎词

#接受本地相关的环境变量类型

AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_COLLATE LC_MONETARY LC_MESSAGES

AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT

AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE

AcceptEnv XMODIFIERS

Subsystem sftp /usr/libexec/openssh/sftp-server :是否开启sftp服务

#Host *.local :限制主机名

# CheckHostIP no :限制主机IP

#Match User anoncvs: 限制只允许某个用户登录

#X11Forwarding no:开启X11转发

#AllowTcpForwarding no:允许TCP转发

#ForceCommand cvs server:限制命令