Ssh_config'de çoklu 'Host *' var mı?


27

~ / .Ssh / config yönteminin nasıl çalıştığını anladığımda, her bir "Ana Bilgisayar" satırının, yapılandırma dosyasındaki bu noktadan sonra herhangi bir ana bilgisayar eşleşmesi için etkili olduğu anlaşılır.

Bağlanmam gereken çok sayıda kişisel sunucu ve çalışma sunucum var. Aşağıdaki gibi bir şey yapmaya çalışıyorum:

# Genel Ayarlar
ControlMaster otomatik
ControlPath ~/.ssh/controlmaster/%r@%h:% p
İleriAgent evet
İlerix11 evet
GSSAPIA kimlik doğrulaması no
PubkeyAuthentication evet

# Kişisel Sunucular
Ana Bilgisayar *
Kullanıcı harleypig
IdentityFile ~ / .ssh / personal_id_rsa

Ana bilgisayar ana bilgisayarı1
Ana bilgisayar adı host1.com

Ana bilgisayar ana bilgisayarı2
Ana bilgisayar adı host2.com

# İş Sunucuları
Ana Bilgisayar *
Kullanıcı alan.young
IdentityFile ~ / .ssh / work_id_rsa

Ev sahibi çalışma1
Ana bilgisayar adı work1.companyserver.com

Ev sahibi iş2
Ana bilgisayar adı work2.companyserver.com

Ana Bilgisayar *
Kullanıcı devuser

Ana bilgisayar dev1
Ana bilgisayar adı dev1.companyserver.com

Ana bilgisayar dev2
Ana bilgisayar adı dev2.companyserver.com

Dokümanlar, host1 ve host2'nin 'personal_id_rsa' ve harleypig kullanıcısını kullanması gerektiğini gösteriyor. work1, work2, dev1 ve dev2 'work_id_rsa' kullanmalı ve ilk ikisi 'alan.young' kullanıcısı, dev1 ve dev2 ise 'devuser' kullanıcısı olmalıdır

Ancak bu olmuyor. 'Ana Bilgisayar *' ne olursa olsun, ilk önce aşağıdaki ana bilgisayarların bağlanmaya çalıştığı şeydir. Yanlış anlıyor muyum veya bir şey mi eksik?


Teşekkürler, bu cevapların ikisi arasında bağlantılarımın çalışmasını sağladım.
harleypig

Yanıtlar:


36

Gönderen ssh_configmanuel :

Her parametre için ilk elde edilen değer kullanıldığından, dosyanın başlangıcına ve sonunda genel varsayılanlara daha fazla ana bilgisayara özgü bildirim yapılmalıdır.

Bu nedenle, örneğinizde, tüm ana bilgisayarlar User harleypigve kullanacaktır IdentityFile ~/.ssh/personal_id_rsa.

HostJoker karakterlerle geri dönüş olarak yönergeleri düşünün : aşağıdaki ayarları yalnızca henüz ayarlamadıysanız kullanın. Böyle bir şey yazmanız gerekir:

Host host1
Hostname host1.com
Host host2
Hostname host2.com
Host host*
User harleypig
IdentityFile ~/.ssh/personal_id_rsa

HostBelirli bir ana bilgisayar takma adı kümesinin joker karakterlerle eşleştirilememesi durumunda bir satıra birden çok desen koyabilirsiniz Host host* more* outlier.


15

Kesinlikle yanlış yapıyorsun.

  • Her zaman Host *en son giriş olarak koymalısınız .
  • Birden fazla Host *giriş yapamazsınız

İş makineleriniz yalnızca iş makinelerini hedeflemek için genelleştirebileceğiniz bir ad biçimine sahipse, örneğin: machine1.work.com, host.work.com, fileserver.work.com, iş makinelerinizi şu şekilde hedefleyebilirsiniz:

Host *.work.com
User alan.young
IdentityFile ~/.ssh/work_id_rsa

Aynı kişisel makineleriniz için de geçerlidir.


Benim Host *için dosyanın başında koyarak iyi iş gibi görünüyor. Belki bir joker karakter kullandığınız gerçeği, bunlara öncelik verirken ilk giriş olduğu gerçeğini geçersiz kılar mı?
Zaz

BTW, Host *.work.comgeçersiz bir sözdizimidir. Sadece diğer tarafta işe Host myserver*
yarar

3
@ MincăDanielAndrei her iki yönde de çalışır, sadece bir joker ifadedir ve onu başka bir joker karakter olarak kullanabilirsiniz. Ev sahibi git-codecommit. *. Amazonaws.com Bu benim ~ / .ssh / config
Hameedullah Khan

@HameedullahKhan ciddiyim, bunu denedim ve cevap vermiyor. Eğer yaparsan Host *subdomain.comcevap vermeyecek.
Daniel Andrei Mincă

1
@ MincăDanielAndrei Davranış man sayfalarında belgelenir, işe yaramazsa (benim için de) bir hatadır.
goetzc
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.