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?
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?
Jawaban:
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/config
secara konsisten diformat:
awk '/Host $youralias/ {getline; print $2}' .ssh/config
Saya hanya memposting ini karena saya ingin memahami bagaimana menggunakannya awk
untuk melakukan ini, tetapi pengetahuan saya, jelas, sangat terbatas.
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 mainserver
dan itu akan ping 192.168.0.20.
Ini adalah cara yang sedikit lebih kuat untuk mengambil HostName
berdasarkan pada Host
dalam .ssh/config
file.
sshalias()
{
awk "\$1==\"Host\" {host=\$2} \$1==\"HostName\" && host==\"$1\" {print \$2}" "$HOME/.ssh/config"
}
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
).