OpenSSH - Ordnen Sie Aliase in ~ / .ssh / config IP-Adressen in der Befehlszeile zu

9

Ist es möglich, ~ / .ssh / config in der Kommandozeile abzufragen? Angenommen, ich möchte in einem separaten Programm abrufen, auf welche IP-Adresse der jeweilige Alias ​​verweist. Ist dies möglich?

user1042840
quelle

Antworten:

2

Wenn ich verstehe, dass Sie nur die IP-Adresse zurückgeben möchten, z. B. 192.168.1.1, ist dies eine (unglaublich spröde) Möglichkeit, die Datei über die Befehlszeile abzufragen, vorausgesetzt, Sie haben die entsprechenden Berechtigungen zum Lesen und Ihre .ssh/configist konsistent formatiert:

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


Ich poste dies nur, weil ich verstehen möchte, wie man awkdas macht, aber mein Wissen ist offensichtlich ziemlich begrenzt.

Jasonwryan
quelle
1

Nicht ganz sicher, was Sie fragen ...

Angenommen, Sie haben einen SSH-Alias ​​für 'mainserver', damit Sie dies tun können ssh mainserver. Wenn Sie möchten, dass es auch funktioniert ping mainserver, müssen Sie einen Alias /etc/hostswie folgt eingeben:

/ etc / hosts:

192.168.0.1 comp-one
192.168.0.2 comp-two

192.168.0.20 mainserver

Dann könnten Sie tun ping mainserverund es würde 192.168.0.20 pingen.

BenjiWiebe
quelle
0

Dies ist eine etwas robustere Methode zum Abrufen der HostNameBasis Hostin der .ssh/configDatei.

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

Die von Ihnen erwähnte Datei ist eine Textdatei. Sie enthält Hostnamen und möglicherweise IP-Adressen , um die Computer zu identifizieren, mit denen Sie eine Verbindung herstellen. Hostnamen können mit dem host(1)Befehl in IP-Adressen aufgelöst werden . Das Format ist recht einfach, so dass es nicht allzu schwer ist herauszufinden, was sich darin befindet. Beachten Sie, dass in der Datei Platzhalter verwendet werden können (Minenzustände *.fedoraproject.org).

vonbrand
quelle