gpt4 book ai didi

unix - 在 SSH 配置主机名中仅使用模式的一部分

转载 作者:行者123 更新时间:2023-12-04 08:52:34 25 4
gpt4 key购买 nike

我有一个像下面这样的 SSH 配置,它适用于:

ssh b21
ssh 23
ssh s267

示例 .ssh/config(传递的主机名插入 %h):
host s*
HostName atrcu%h.example.com
User example
Port 22
host b*
HostName atrcx%h.example.com
User example
Port 22
host ??*
HostName atvts%h.example.com
User example
Port 2205

但我想在主机中包含用户名:
ssh b21ex

这将 ssh 到:
example@atvts21.example.com

而是:
atvts21ex.example.com

他们有什么方法可以在 %h 传递时剪切/修改它,也许让连接匹配更多模式以在此过程中获取用户名?

最佳答案

您可以使用 match 执行示例中描述的操作规范而不是 host .这是指定一个主机或一组主机的另一种方式。

例如:

Match user u* host t*
Hostname %hest.dev
User %r

这将匹配用户模式和目标主机模式。

命令行将类似于 ssh u@t ,导致此替换: u@test.dev .

这是 ssh 调试输出的一个片段:

debug2: checking match for 'user u* host t*' host t originally t
debug3: /Users/_/.ssh/config line 2: matched 'user "u"'
debug3: /Users/_/.ssh/config line 2: matched 'host "t"'
debug2: match found
...
debug1: Connecting to test.dev port 22.
debug1: Connection established.
...
u@test.dev's password:

match可以匹配其他一些东西(并且有一个选项可以执行 shell 命令),但除此之外它就像 host .进入那里的 ssh 客户端选项是相同的(例如,您可以指定和 IdentityFile 将与匹配规范一起使用)

您可以在手册页中阅读更多内容:
ssh_config

关于unix - 在 SSH 配置主机名中仅使用模式的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17169292/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com