ssh config wildcard untuk menghindari mengetik nama pengguna

12

Saya sering ssh ke instance openstack. Semua instance berada pada vlan dan subnet khusus (10.2.xx). Semua instance memiliki nama pengguna (bob) yang sama

Saya terhubung seperti ini:

ssh [email protected]

atau terkadang seperti ini

ssh 10.2.x.x -l bob

Apakah mungkin untuk mengkonfigurasi laptop saya untuk secara otomatis menggunakan nama bob ketika saya ssh ke vm pada subnet 10.2.xx? Saya tidak ingin menggunakan bob secara otomatis saat mengisap mesin pada subnet lain.

Sepertinya ssh config tidak mendukung wildcard. (Koreksi saya jika saya salah). Saya berpikir mungkin seorang alias bisa melakukan ini, tetapi saya tidak yakin apa yang akan menjadi sintaks.

spuder
sumber

Jawaban:

18

Halaman manual ssh_config memiliki bagian PATTERNSyang merinci bagaimana Anda dapat melakukannya, Anda dapat menggunakan wildcard *dan ?. Di saya ~/.ssh/config:

Host 172.16.*.*
   User drav

dan kemudian pada penerbitan ssh -vvv 172.16.13.1:

debug1: Reading configuration data /home/drav/.ssh/config
debug1: /home/drav/.ssh/config line 4: Applying options for 172.16.*.*
debug1: /home/drav/.ssh/config line 46: Applying options for *

Perhatikan bahwa kecocokan ini kanonik, jadi jika "fred.mynetwork.com" di DNS adalah 172.16.13.1, mengeluarkan ssh fred.mynetwork.comtidak akan cocok dengan Host 172.16.*.*entri. Namun Anda selalu bisa, menambahkan Host *.mynetwork.comentri tambahan untuk menerapkan opsi yang sama saat nama DNS digunakan.

Drav Sloan
sumber
Ya, sebuah entri Host 10.2*akan melakukan trik
Bananguin
Saya menemukan 10.2. *. * Menyebabkan kunci saya ditolak. Mengubah ke 10.2. * Menyebabkan koneksi berhasil.
Spuder
1
Aneh, bagi saya xx *. * Berfungsi: / Setidaknya ada komentar Anda jika orang menemukan masalah!
Drav Sloan