如何配置自定义SSH连接来简化远程访问

本文介绍了SSH客户端配置文件的用途、位置和创建方法,以及如何使用这些配置文件简化远程主机连接。通过自定义~/.ssh/config文件,可以设置包括主机别名、端口、用户和压缩等选项,实现更安全、便捷的SSH连接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SSH(SSH客户端)时一个用英语远程访问机器的程序,它使用户能够在远程主机上执行命令。由于它被设计成在不安全网络上两台不信任主机之间提供安全加密通信,它是登录到远程主机的最受推荐方式之一。  

SSH使用一个系统范围以及用户特定(自定义)配置文件。在这里我们将解释如何创建一个自定义ssh配置文件并且使用特定选项来连接到远程主机。

要求:

  • 你必须在你的Linux上安装了OpenSSH客户端。
  • 理解用于通过ssh远程连接的常用选项。

SSH客户端config文件

以下是ssh客户端配置文件的位置:

/etc/ssh/ssh_config:这是默认的系统范围配置文件。它包含了应用于ssh客户端机器的所有用户。

~/.ssh/config或者$HOME/.ssh/config:是用户特定/自定义配置文件。它有应用于特定用户的配置。因而它重写了系统范围config文件的默认设置。这是我们将创建和使用的文件。

注意:如果目录~/.ssh在你的系统中不存在,用以下权限创建它。

[blctrl@areadetector ~]$ mkdir -p ~/.ssh
[blctrl@areadetector ~]$ chmod 0700 ~/.ssh
[blctrl@areadetector ~]$ ls ~/.ssh -ld
drwx------. 2 blctrl blctrl 80 Jun 30 10:27 /home/blctrl/.ssh

以上chmod命令表示只有所有者对这个ssh设置所需的目录才有读,写和执行权限。

如何创建用户特定的SSH配置文件

默认通常不创建这个文件,所以你用读/写权限为唯一用户创建它。

[blctrl@areadetector ~]$ cd /home/blctrl/.ssh/
[blctrl@areadetector .ssh]$ ls
authorized_keys  id_rsa  id_rsa.pub  known_hosts
[blctrl@areadetector .ssh]$ touch config
[blctrl@areadetector .ssh]$ chmod 0700 config
[blctrl@areadetector .ssh]$ ls -l config
-rwx------. 1 blctrl blctrl 0 Jul  5 13:39 config

以上文件包含由主机规范定义的节,并且每节只应用于匹配了规范中其中一种模式设置的主机。

~/.ssh/config的格式如下,并且所有空行和以'#'起始的行被认为注释:

Host    host1
	ssh_option1=value1
	ssh_option2=value1 value2
	ssh_option3=value1 

Host    host2
	ssh_option1=value1
	ssh_option2=value1 value2

Host  *
	ssh_option1=value1
	ssh_option2=value1 value2

以上格式注释:

  • Host host1:是用于host1的头定义,这是一个host规范起始的位置并且它以下一个头定义结束,Host host2产生一节。
  • host1,host2:只是用在命令行上的主机别名,它们不是远程主机的实际主机名。
  • 诸如ssh_option1=value1, ssh_option2=value1 value2的配置选项应用于一个匹配的主机并且应该是为了良好组织格式。
  • 对于诸如ssh_option2=value1 value2的选项,首先考虑值value1,接着value2。
  • 头定义Host *(此处*是一个模式,匹配0或多个字符的通配符)将匹配0或多台主机。

仍然考虑以上格式,这是ssh如何读取config文件。如果你执行一个ssh命令远程访问host1,像这样:

$ ssh host1

以上ssh命令将做以下事情:

  • 匹配在config文件种主机别名host1并且使用在这个定义头下的选项设置。
  • 接着移动到下个主机节Host host2并且发现在命令行上提供的名称不匹配,所以不使用这里的选项。
  • 它继续下一节Host *,其匹配所有主机。它使用在这节种所有选项到主机连接。但它不能重写在先前节中已经使用选项的任何值。
  • 对host2应用相同。

如何使用用户特定的SSH配置文件

一旦你理解了ssh客户端config文件如何运作,你可以按如下创建这个文件。记住使用适用于你服务器环境的选项和值(主机别名,端口号,用户名等等)。

用编辑器打开你的config文件:

Host almalinux
        HostName 192.168.50.128
        Port 22
        ForwardX11 yes


Host oracleLinux
        HostName 192.168.50.157
        Port 22
        ForwardX11 yes


Host CentOS7
        HostName 192.168.50.205
        Port 22
        ForwardX11 yes



Host Ubuntu
        HostName 192.168.50.184
        Port 22
        ForwardX11 yes


Host CentOS7_2
        HostName 192.168.50.74
        Port 6666
        ForwardX11 yes

Host *
        User blctrl
        IdentityFile ~/.ssh/id_rsa
        Protocol 2
        Compression yes
        ServerAliveInterval 60
        ServerAliveCountMax 20
        LogLevel INFO

以上ssh配置选项的详解:

  • HostName:定义要登录的真实主机,你可以使用数值IP地址,也是允许的。
  • User:指定以哪个用户登录。
  • Port:设置远程主机的连接端口号,默认值是22。使用在远程主机的sshd config文件中配置的端口号。
  • Protocol:这个选项按优先顺序定义ssh应该支持的协议版本。通常值是'1'和'2',多个版本必须用逗号分开。
  • IdentifyFile:指定从哪个文件读取用户的DSA,Ed25519, RSA或ECDSA身份验证标识。
  • ForwardX11:定义X11连接是否通过安全通道和DISPLAY设置被自动重定向。它有两个可能的值"yes"或"no"。
  • Compression:它用于在远程连接过程中用"yes"值设置压缩。默认为"no".
  • ServerAliveInterval:设置一个秒为单位的超时间隔时间,如果从服务器没有收到响应超过这个时间,ssh将通过加密通道发送一条消息请求来自服务器的响应。默认值是0,表示将不发送消息给服务器,或者如果已经定义了BatchMode选项,300。
  • ServerAliveCountMax:设置在ssh没有收到来自服务器任何响应后会发送的服务器存活消息的数目。
  • LogLevel:定义在来自ssh的日志消息时使用的详细程度。可用的值包括:QUIT, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2和DEUBG3。并且默认是INFO。

连接任何远程Linux服务器的标准方法,我们一般输入以下命令:

[blctrl@areadetector .ssh]$ ssh -i ~/.ssh/id_rsa -p 22 blctrl@192.168.50.184
Welcome to Ubuntu 22.04 LTS (GNU/Linux 5.15.0-40-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

128 updates can be applied immediately.
To see these additional updates run: apt list --upgradable

Last login: Tue Jul  5 13:06:33 2022 from 192.168.50.19

blctrl@blctrl-KVM:~$

但,使用ssh客户端配置文件,我们只要输入以下命令:

[blctrl@areadetector .ssh]$ ssh Ubuntu
Welcome to Ubuntu 22.04 LTS (GNU/Linux 5.15.0-40-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

128 updates can be applied immediately.
To see these additional updates run: apt list --upgradable

Last login: Tue Jul  5 14:37:54 2022 from 192.168.50.150

blctrl@blctrl-KVM:~$
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值