OpenSSH-将〜/ .ssh / config中的别名映射到命令行中的IP地址


9

是否可以在命令行中查询〜/ .ssh / config?假设我想在一个单独的程序中检索特定别名指向的IP地址,这可能吗?

Answers:


2

如果我知道您只想返回IP地址,即192.168.1.1,那么这是从命令行查询文件的一种(非常脆弱的)方式,只要您具有读取文件的适当权限并且.ssh/config始终如一格式化:

awk '/Host $youralias/ {getline; print $2}' .ssh/config


我只发布此内容,因为我想了解如何使用它awk来进行此操作,但是我的知识显然很有限。


1

不确定您要问的是什么...

假设您有一个“ mainserver”的SSH别名,则可以这样做ssh mainserver。如果您希望它也适用于ping mainserver,则需要在中添加一个别名/etc/hosts,如下所示:

/ etc / hosts:

192.168.0.1 comp-one
192.168.0.2 comp-two

192.168.0.20 mainserver

然后您可以这样做ping mainserver,它将对192.168.0.20 执行ping操作。


0

这是检索的一个稍微更稳健的方式HostName基础上Host的中.ssh/config文件。

sshalias()
{
    awk "\$1==\"Host\" {host=\$2} \$1==\"HostName\" && host==\"$1\" {print \$2}" "$HOME/.ssh/config"
}

-1

您提到的文件是一个文本文件,它包含主机名以及可能的IP地址,以标识您连接到的计算机。主机名可以使用host(1)命令解析为IP地址。格式非常简单,因此找出其中的内容并不难。请注意,可以在文件中使用通配符(mine statuss *.fedoraproject.org)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.