.Ssh / config içindeki normal ifade


12

İş yerinde, genellikle ortak bir adlandırma şemasını takip eden ana bilgisayarlara giriş yapmak zorunda kalıyorum, örneğin qc01- qc12, hc01- hc10, vb. Tüm bunların dizüstü bilgisayarımda aynı yapılandırma değerlerini alması gerekiyor .ssh/config. Tabii ki, ana bilgisayarlar için girişleri kullanabilirsiniz qc*ve hc*bunun yerine düzenli ifadeler kullanmak bir şekilde mümkün olup olmadığını merak ediyorum?

Yanıtlar:




3

İçinde tam düzenli ifadeler kullanabilirsiniz ssh_config.

İlgili dokümantasyon IMO'nun okunması ve anlaşılması çok zordur. Bunu anlıyorum çünkü 13 yıldan fazla Linux deneyimim ve 8 yıldan fazla kullanıyorum ssh. İşte benim dokümantasyonun özeti:

  • man ssh_config adlı bir özelliği açıklar Match
  • execbir eşleşme belirlemek için rastgele bir kabuk komutu kullanmanıza izin verilen bir özellik var
  • giriş parametrelerinin keyfi kabuk komutuna geçirilmesi mümkündür ve etiketli bölümde açıklanmıştır TOKENS

Benim durumumda benim kullanarak sona erdi~/.ssh/config :

Match exec "echo %h | grep -q 'NAME[0-9]\+$'"
    User USER
    IdentityFile /path/to/identity/file
    Hostname %h.fully.qualified.domain.name

Testler böyle zor bir şeyle yapılmalıdır. Ve bu testi yapmak için çağırırsınız ssh -vvv HOSTNAME. Bu, tam olarak ne olduğunu ve yeni öğenizin Matchdoğru bir şekilde uygulanıp uygulanmadığını gösterecektir .


0

Trevor'ın cevabını genişletmek:

Kullanılan ana makine adları için DNS girişlerine sahip OLMADAN eşleştirme foo123.123ve foo10.10bir kural olmadan daha karmaşık ana makineler de mümkündür :

Match exec "echo %h | grep -q 'foo[0-9]\+.[0-9]\+$'"
    Port 1234 # just to show it can be paired with non-default ports too,
              # see %p in man ssh_config
    ProxyCommand /usr/bin/nc 10.10.$(echo %h | sed -e 's/foo//') %p

% H içeriğini kabukla değiştirmek için ProxyCommand kullanma ve bir netcat aracılığıyla doğru bağlantı noktasına bağlanma. Bu şekilde , tek tek girişler oluşturmadan, ana makine kategorisi için hazır ayarlar oluşturabilirsiniz.

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.