OpenSSH - memetakan alias di ~ / .ssh / config ke alamat IP di baris perintah

9

Apakah mungkin untuk menanyakan ~ / .ssh / config di baris perintah? Katakanlah saya ingin mengambil alamat IP apa yang ditunjuk alias khusus dalam program terpisah, apakah mungkin?

pengguna1042840
sumber

Jawaban:

2

Jika saya mengerti bahwa Anda hanya ingin alamat IP dikembalikan, yaitu., 192.168.1.1, maka ini adalah salah satu (sangat rapuh) cara meminta file dari baris perintah, asalkan Anda memiliki izin yang sesuai untuk membacanya dan Anda .ssh/configsecara konsisten diformat:

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


Saya hanya memposting ini karena saya ingin memahami bagaimana menggunakannya awkuntuk melakukan ini, tetapi pengetahuan saya, jelas, sangat terbatas.

jasonwryan
sumber
1

Tidak sepenuhnya yakin apa yang Anda tanyakan ...

Katakanlah Anda memiliki alias SSH untuk 'server utama' sehingga Anda dapat melakukannya ssh mainserver. Jika Anda menginginkannya juga berfungsi ping mainserver, Anda harus memasukkan alias /etc/hosts, seperti:

/ etc / hosts:

192.168.0.1 comp-one
192.168.0.2 comp-two

192.168.0.20 mainserver

Maka Anda bisa melakukannya ping mainserverdan itu akan ping 192.168.0.20.

BenjiWiebe
sumber
0

Ini adalah cara yang sedikit lebih kuat untuk mengambil HostNameberdasarkan pada Hostdalam .ssh/configfile.

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

File yang Anda sebutkan adalah file teks, berisi nama host dan kemungkinan alamat IP untuk mengidentifikasi mesin yang Anda hubungkan. Nama host dapat diselesaikan ke alamat IP menggunakan host(1)perintah. Formatnya cukup sederhana, jadi tidak terlalu sulit untuk mengetahui apa yang ada di sana. Perhatikan bahwa wildcard dapat digunakan dalam file (status ranjau *.fedoraproject.org).

vonbrand
sumber