OpenSSH - mappa gli alias in ~ / .ssh / config agli indirizzi IP nella riga di comando


9

È possibile eseguire una query su ~ / .ssh / config nella riga di comando? Diciamo che vorrei recuperare a quale indirizzo IP punta il particolare alias in un programma separato, è possibile?

Risposte:


2

Se capisco che vuoi solo restituire l'indirizzo IP, ad esempio 192.168.1.1, questo è un modo (incredibilmente fragile) di interrogare il file dalla riga di comando, a condizione che tu abbia le autorizzazioni appropriate per leggerlo e il tuo .ssh/configè costantemente formattato:

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


Sto pubblicando questo solo perché vorrei capire come usare awkper farlo, ma la mia conoscenza è, ovviamente, abbastanza limitata.


1

Non sono sicuro di quello che stai chiedendo ...

Supponi di avere un alias SSH per "mainserver", quindi puoi farlo ssh mainserver. Se vuoi che funzioni anche per ping mainserver, devi inserire un alias /etc/hosts, in questo modo:

/ etc / hosts:

192.168.0.1 comp-one
192.168.0.2 comp-two

192.168.0.20 mainserver

Quindi potresti farlo ping mainservere farebbe il ping 192.168.0.20.


0

Questo è un modo leggermente più robusto per recuperare la HostNamebase Hostnel .ssh/configfile.

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

-1

Il file che menzioni è un file di testo, contiene nomi host e possibilmente indirizzi IP per identificare le macchine a cui ti connetti. I nomi host possono essere risolti in indirizzi IP usando il host(1)comando. Il formato è abbastanza semplice, quindi non è troppo difficile scoprire cosa c'è dentro. Si noti che i caratteri jolly possono essere utilizzati nel file (i miei stati *.fedoraproject.org).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.