linux文件之ssh_config配置文件的作用

叶sir学编程 2024-05-17 00:50:03

ssh_config文件里面包含了许多配置信息,用户可以根据实际需要修改里面的配置参数,以改变SSH客户端程序的运行方式,配置文件内容如图1:

图1

ssh_config文件是针对客户端的配置文件,命令为ssh user@ip,因此当该命令报错时,通常需要修改ssh_config文件里的配置。里面主要的配置参数的含义如下:

Host *:匹配指定的主机,*表示所有的主机。该字段通常不注释。

ForwardAgent no:设置SSH客户端是否转发登录到远程主机的代理连接,即连接是否经过代理验证,如果是则转发到远程主机。该字段默认注释。

ForwardX11 no:设置SSH客户端是否转发X11图形界面。

ForwardX11Trusted yes:表示是否应该信任SSH服务器自身的X11转发请求。

PasswordAuthentication yes:该字段表示使用密码认证,注释了表示SSH客户端不使用密码认证。

HostbasedAuthentication no:表示是否启用基于主机的认证。

GSSAPIAuthentication no:设置是否禁用GSSAPI认证。

GSSAPIDelegateCredentials no:设置是否将用户凭证由GSSAPI认证。

GSSAPIKeyExchange no:设置是否使用GSSAPI密钥交换算法。

GSSAPITrustDNS no:设置是否使用GSSAPI认证机制,不使用SSH本身的认证机制。

BatchMode no:设置是否使用交互式,no表示将在交互式模式下运行,这要求用户ssh登录时需要输入账号密码等认证信息;yes表示不使用交互式认证信息,该字段为批处理模式下运行,即针对的是所有的ssh客户端连接。

CheckHostIP yes:设置ssh登录是否检测主机的ip,以此确认服务器的正确性,以防止DNS欺骗攻击。

AddressFamily any:用于指定SSH连接时使用的地址族,any表示任意地址族。

ConnectTimeout 0:表示连接超时时间,以秒为单位,0表示没有连接超时时间。

StrictHostKeyChecking ask:用于设置在连接新的服务器时,是否检查主机的公钥,ask表示会在连接新的服务器主机时,询问用户是否接受该主机的公钥,用户同意后,会将该公钥保存到用户的.ssh/known_hosts文件中。

IdentityFile ~/.ssh/id_rsa:表示指定SSH客户端在认证时,要使用的密钥文件路径。

Port 22:表示客户端连接服务器时,使用22端口进行连接。SSH服务默认使用端口22。

Protocol 2:指定使用SSH协议的版本,SSH协议有两个版本,分别是SSH-1和SSH-2,2表示使用SSH-2版本

Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc:表示使用的加密算法。

EscapeChar ~:用于设置一个非默认的转义字符,默认使用~作为转义字符。

PermitLocalCommand no:用于控制SSH是否允许指定本地命令。

VisualHostKey no:用于控制SSH在连接到远程主机时是否比较主机密钥。

ProxyCommand ssh -q -W %h:%p gateway.example.com:表示通过SSH连接到主机时,会通过后面的服务器地址,转发到目的主机上。ProxyCommand表示用于连接代理的命令。

-q表示安静模式,减少冗余输出,-W表示要进行端口转发的类型,%h:%p表示替换为目标主机和端口,后面的则是代理服务器的地址。

RekeyLimit 1G 1h:用于限制SSH连接的密钥交互的频率。1G 1h表示一小时内传输的数据超过1G,就会重新交换密钥。

SendEnv LANG LC_*:指定哪些环境变量会被发送到SSH会话,LANG和LC_*表示当会话启动时,会发送LANG和LC开头的环境变量到远程服务器,以便配置会话的语言和设置。

HashKnownHosts yes:表示会使用哈希表来加快检索主机公钥,可以提供SSH的性能。

0 阅读:0

叶sir学编程

简介:感谢大家的关注