使用SSH配置文件(使用配置文件注入bean)

linux 使用SSH配置文件 如果您每天都需要定期通过SSH连接到多个远程系统,您会发现记住所有远程IP地址,不同的用户名,非标准的默认端口和各种命令行选项是很困难。一种选择是为每个远程服务器连接创建一个bash别名。简单的解决方案是使用SSH配置文件。本指南介绍了SSH客户端配置文件的基础知识和选项 By myfreax 5 Dec 2021

假如你天天都要准时依据SSH输送到好多个远程系统,你会发现熟记所有远程操作IP地址,不同种类的登录名,非标底默认端口及各种cmd选项是很困难。

一种选择就是为了每一个服务器连接创建一个bash别名。但是,对于这个问题,也是有另一种比较强,比较方便解决方法。OpenSSH允许您为每一个客户设置配置文件,你们可以为每一台远程操作计算机存储不同种类的SSH选项。

本入门教程讲述了SSH客户端配置文件基本知识,并介绍了一些常见配置选项。

必备条件

你Linux或macOS系统已下载了OpenSSH客户端。

SSH配置文件位置

OpenSSH客户端配置文件存储在客户家目录里的.ssh目录中~/.ssh。当客户第一次运行ssh命令时,就会自动创建该目录并创建配置文件config

假如你从未用过ssh,则需要使用以下command命令创建目录:

mkdir -p ~/.ssh && chmod 700 ~/.ssh

默认情况下,SSH配置文件极有可能也不会有,因此您可能需要使用touch命令创建它:

touch ~/.ssh/config && chmod 600 ~/.ssh/config

此文本文档尽量必须由用户阅读能力,并且他人打不开:

chmod 700 ~/.ssh/config

SSH配置文件结构和方法

SSH配置文件采用以下结构:

Host hostname1
    SSH_OPTION value
    SSH_OPTION value
Host hostname2
    SSH_OPTION value
Host *
    SSH_OPTION value

SSH客户端配置文件具体内容每一部分称作一节。每一个节都以Host指令逐渐,并包含远程操作SSH网站服务器取得联系时使用的独特SSH选项。

缩近并不是必须的,但建议使用缩近,因为它会使文本文档更容易阅读。

Host指令可以包括一个方法或以空格符分隔的形式目录。每一个方法可以包含零个或多个非空白字符或以下方法说明符之一:

  • * - 匹配零个或多个标志符。例如,Host *将匹配所有网络服务器,此外192.168.0.*匹配192.168.0.0/24子网掩码中所有服务器。
  • ? - 恰好匹配一个字符。该模式Host 10.10.0.?将匹配10.10.0.[0-9]范围内所有网络服务器。
  • !- 在方法的开始将否定其匹配例如,Host 10.10.0.* !10.10.0.5将匹配10.10.0.0/24子网掩码中的任何网络服务器,除了10.10.0.5

SSH客户端按节加载配置文件节,倘若好多个搜索算法,则优先使用第一个匹配节中的选项。因此,需要在文本文档逐渐带来新的独特于服务器声明,而且在文本文档末尾提供良好的遮住。

您可以通过在终端键入man ssh_config或访问ssh_config手册页来检索能用ssh选项的一体化目录。

SSH的配置文件也被其他操作程序运用,如scpsftprsync

大部分SSH配置文件案例

现如今已经讲述了SSH配置文件基本知识,让我们看一下下面的例子。

一般,如果你依据SSH输送到服务器时,我们将特殊远程操作登录名,主机名和服务器端口。例如,为了能够连接在规定客户john到一个名为网络服务器dev.example.com服务器端口2322的cmd,键入:

ssh john@dev.example.com -p 2322

如果你想要简单上面的指令,并所提供一样选项连接到服务器,只需键入取名字ssh dev 就能连接远程主机,但是你需要把以下行放入你"~/.ssh/config文本文档:

〜/.ssh/config

Host dev
    HostName dev.example.com
    User john
    Port 2322

现如今,如果你需要输入:

ssh dev

ssh客户端将加载配置文件,它将使用为dev网络服务器特定连接选项信息,

共享SSH配置文件案例

此案例提供有关host方式及选项优先选择深层次的详细信息。

再来看看下面的案例配置文件:

Host targaryen
    HostName 192.168.1.10
    User daenerys
    Port 7654
    IdentityFile ~/.ssh/targaryen.key
Host tyrell
    HostName 192.168.10.20
Host martell
    HostName 192.168.10.50
Host *ell
    user oberyn
Host * !martell
    LogLevel INFO
Host *
    User root
    Compression yes

假如你键入ssh targaryen ,ssh客户端将加载该文件然后把应用第一个相符的选项Host targaryen。接着这将会逐一检查下一个节的组排。下一个相符的是Host * !martell,除了martell它之外的所有网络服务器,这将会应用此节中的连接选项。最后,最后一个定义Host *全是相符的,但ssh客户端只采用Compression选项,因为User选项早就在该Host targaryen节中定义。本案例常用的详尽选项目录如下所示:

HostName 192.168.1.10
User daenerys
Port 7654
IdentityFile ~/.ssh/targaryen.key
LogLevel INFO
Compression yes

在运行中ssh tyrell相符的主机模式是:Host tyrellHost *ellHost * !martellHost *。在这种情况下所使用的选项是:

HostName 192.168.10.20
User oberyn
LogLevel INFO
Compression yes

倘若运行ssh martell相符的主机模式是:Host martellHost *ellHost *。在这种情况下所使用的选项是:

HostName 192.168.10.50
User oberyn
Compression yes
  • 对于所有其他连接Host * !martellHost *将使用节中特定选项。

遮住SSH配置文件选项

ssh客户端按以下优先顺序加载配置:

  1. 从cmd特定选项
  2. ~/.ssh/config中定义的选项
  3. /etc/ssh/ssh_config中定义的选项

如果要遮住独立选项,也可以在cmd中特殊它。例如,如果您有以下定义在配置文件中:

Host dev
    HostName dev.example.com
    User john
    Port 2322

并且您需要运用所有其他选项,但要以root客户身份进行连接,并非john 只需在cmd上特殊客户:

ssh -o "User=root" dev

-Fconfigfile选项容许特殊一个替代客户使用的文本文档。

假如你希望ssh客户端忽略ssh配置文件中特定所有选项,则能用:

ssh -F /dev/null user@example.com

到这里,您早就学会了怎么配置客户ssh配置文件。您仍需要设置依据SSH秘钥的身份验证并输送到Linux服务器而无需键入交易密码。

默认情况下,SSH监视服务器端口22. 变动默认SSH服务器端口可以降低自动攻击风险性,从而为网站服务器提高附加安全层。

假如你有任何疑问,请在下面留言。如果你喜欢大伙儿的内容可以选择在下方二维码中捐赠大伙儿,或者点击广告提供支持,感谢你的支持

LINUX

Linux file文件命令(linux解压rar文件命令)

2023-1-19 9:37:22

LINUX

如何检查Debian Linux版本(如何查看debian版本)

2023-1-19 9:41:05

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索