Pemahaman saya tentang cara ~ / .ssh / config berfungsi adalah bahwa setiap baris 'Host' berlaku untuk semua host yang cocok setelah titik tersebut dalam file config.
Saya memiliki sejumlah server pribadi dan server kerja yang harus saya hubungkan. Saya mencoba melakukan sesuatu seperti berikut:
# Pengaturan Umum ControlMaster otomatis ControlPath ~/.ssh/controlmaster/%r@%h:% p ForwardAgent ya ForwardX11 ya GSSAPIAuthentication no PubkeyAuthentication ya # Server Pribadi Tuan rumah * Pengguna harleypig IdentityFile ~ / .ssh / personal_id_rsa Tuan rumah tuan rumah1 Hostname host1.com Tuan rumah tuan rumah2 Hostname host2.com # Server Pekerjaan Tuan rumah * Pengguna alan.young IdentityFile ~ / .ssh / work_id_rsa Tuan rumah bekerja1 Hostname work1.companyserver.com Tuan rumah bekerja2 Hostname work2.companyserver.com Tuan rumah * Pengguna devuser Tuan rumah dev1 Hostname dev1.companyserver.com Tuan rumah dev2 Hostname dev2.companyserver.com
Dokumen tampaknya menunjukkan bahwa host1 dan host2 harus menggunakan 'personal_id_rsa' dan pengguna harleypig. work1, work2, dev1, dan dev2 harus menggunakan 'work_id_rsa' dan dua yang pertama adalah pengguna 'alan.young' dan dev1 dan dev2 harus menjadi pengguna 'pengguna'
Namun, ini tidak terjadi. Apapun 'Host *' yang saya utamakan adalah apa yang ingin disambungkan oleh semua host berikut. Apakah saya salah paham atau melewatkan sesuatu?
Jawaban:
Dari
ssh_config
manual :Jadi, dalam contoh Anda, semua host akan menggunakan
User harleypig
danIdentityFile ~/.ssh/personal_id_rsa
.Pikirkan
Host
arahan dengan wildcard sebagai fallback: gunakan pengaturan berikut ini hanya jika belum ditetapkan. Anda perlu menulis sesuatu seperti ini:Anda bisa meletakkan banyak pola pada satu
Host
baris jika set alias host tertentu tidak dapat dicocokkan dengan wildcard, misalnyaHost host* more* outlier
.sumber
Anda pasti salah melakukannya.
Host *
sebagai entri terakhir.Host *
entriJika mesin kerja Anda memiliki format nama yang dapat digeneralisasi untuk hanya menargetkan mesin kerja, misalnya: machine1.work.com, host.work.com, fileserver.work.com maka Anda dapat menargetkan mesin kerja Anda sebagai:
Hal yang sama berlaku untuk mesin pribadi Anda.
sumber
Host *
di awal file sepertinya berfungsi dengan baik. Mungkin fakta bahwa Anda menggunakan wildcard mengalahkan fakta bahwa itu adalah entri pertama ketika memprioritaskannya?Host *.work.com
ini adalah sintaks yang tidak valid. Ini hanya bekerja sebaliknya:Host myserver*
Host *subdomain.com
itu tidak akan merespons.