Linux下定制SSH来简化远程访问教程 linux如何使用ssh命令远程登录( 二 )



1

$ ssh host1
以上 ssh 命令会进行一下动作:
1.匹配配置文件中主机别名 host1,并使用头部定义中的各个设置项 。
2.继续匹配下一个主机定义,然后发现命令行中提供的主机名没有匹配的了,所以接下来的各个设置项会被略过 。
3.最后执行到最后一个主机定义 Host *,这会匹配所有的主机 。这里,会将接下来的所有设置选项应用到所有的主机连接中 。但是它不会覆写之前已经有主机定义的那些选项 。
4.ssh host2 与此类似 。
如何使用用户指定的 shh 配置文件
在你理解了 ssh 客户端配置文件的工作方式之后,你可以通过如下方式来创建它 。记得使用你的服务器环境中对应的选项、值 (主机别名、端口号、用户名等) 。
通过你最喜欢的编辑器来打开配置文件:

1

$ vi ~/.ssh/config
并定义必要的部分:

1
2
3
4
5
6
7
【Linux下定制SSH来简化远程访问教程 linux如何使用ssh命令远程登录】8
9
10
11
12
13
14
15
16
17
18
19
20
Host fedora25
HostName 192.168.56.15
Port 22
ForwardX11 no
Host centos7
HostName 192.168.56.10
Port 22
ForwardX11 no
Host ubuntu
HostName 192.168.56.5
Port 2222
ForwardX11 yes
Host *
User tecmint
IdentityFile ~/.ssh/id_rsa
Protocol 2
Compression yes
ServerAliveInterval 60
ServerAliveCountMax 20
LogLevel INFO
以上 ssh 配置文件的详细解释:
1.HostName - 定义真正要登录的主机名,此外,你也可以使用数字 IP 地址,不管是在命令行或是 HostName 定义中都允许使用其中任一种 。
2.User – 指定以哪一个用户来登录 。
3.Port – 设置连接远程主机的端口,默认是 22 端口 。但必须是远程主机的 sshd 配置文件中定义的端口号 。
4.Protocol – 这个选项定义了优先使用 ssh 支持的协议版本 。常用的值为 ‘1’ 和 ‘2’,同时使用两个协议版本则必须使用英文逗号隔开 。
5.IdentityFile – 指定一个用于读取用户 DSA、Ed25519、ECDSA 等授权验证信息的文件 。
6.ForwardX11 – 定义 X11 连接是否自动重定向到安全通道和 DISPLAY 设置 。有两个可以设置的值,即 yes 或 no 。
7.Compression – 默认值为 no,如果设置为 yes,则在连接远程主机过程中使用压缩进行传输 。
8.ServerAliveInterval – 设置当没有收到服务器响应 (或者数据))时的超时时间,单位为秒,ssh 会通过加密信道发送信息,请求服务器响应 。默认值为 0,这意味着 ssh 不会向服务器发送响应请求;如果定义了 BatchMode 选项,则默认是 300 秒 。
9.ServerAliveCountMax – 设置服务器在没有接收到服务器的任何响应时,由服务器发送的活动信息数量 。
10.LogLevel – 定义 ssh 登录信息的的日志冗余级别 。允许的值为:QUIET、FATAL、ERROR、INFO、VERBOSE、DEBUG、DEBUG1、DEBUG2 和 DEBUG3,默认为 INFO 。
连接任意远程主机的标准方法是在上述两个文件中定义第二个部分(我连接的是 CentOS 7) 。一般情况下,我们这样输入命令:

1

$ ssh

推荐阅读