OpenSSH - mapuj aliasy w ~ / .ssh / config na adresy IP w wierszu poleceń


9

Czy możliwe jest zapytanie ~ / .ssh / config w linii poleceń? Powiedzmy, że chciałbym pobrać adres IP, na który wskazuje dany alias w osobnym programie, czy to możliwe?

Odpowiedzi:


2

Jeśli dobrze rozumiem, że chcesz po prostu adres IP wrócił, tzn. 192.168.1.1, to jest jeden (niezwykle kruche) sposób odpytywania plik z wiersza poleceń, pod warunkiem posiadania odpowiednich uprawnień, aby ją przeczytać i Twój .ssh/configjest konsekwentnie sformatowany:

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


Publikuję to tylko, ponieważ chciałbym zrozumieć, jak awkto zrobić, ale moja wiedza jest oczywiście dość ograniczona.


1

Nie jestem całkowicie pewien, o co pytasz ...

Załóżmy, że masz alias SSH dla „mainserver”, więc możesz to zrobić ssh mainserver. Jeśli chcesz, aby również działał ping mainserver, musisz wstawić alias /etc/hosts:

/ etc / hosts:

192.168.0.1 comp-one
192.168.0.2 comp-two

192.168.0.20 mainserver

Wtedy możesz to zrobić ping mainserveri ping pinguje 192.168.0.20.


0

To jest nieco bardziej wydajny sposób pobierania HostNamena podstawie Hostw .ssh/configpliku.

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

-1

Wspomniany plik jest plikiem tekstowym, zawiera nazwy hostów i ewentualnie adresy IP w celu identyfikacji komputerów, z którymi się łączysz. Nazwy hostów można przekształcić na adresy IP za pomocą host(1)polecenia. Format jest dość prosty, więc nie jest zbyt trudno dowiedzieć się, co tam jest. Zauważ, że w pliku można używać symboli wieloznacznych (stanów kopalni *.fedoraproject.org).

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.