SSH neden bu ana bilgisayar adını çözmüyor?


13

Ağdaki bir ana bilgisayara SSH denemeye çalıştığımda storage, DNS çözümleme hatası alıyorum:

$ ssh storage
ssh: Could not resolve hostname storage: Name or service not known

Ancak DNS'yi ana bilgisayarla sorguladığımda işe yarıyor

$ host storage
storage has address 192.168.20.103

hostIP'yi bulabilen ancak bulamayan nasıl ssh?


14
Her yerde FQDN kullanma alışkanlığı edinmeye başlayın. Bu çizgide karşılaştığınız ilk sorun buysa, olağanüstü derecede şanslısınız demektir. Bunlar takip etmek gerçekten kıllı olabilir ve sonuncunuz olmayacak. İşte bir ipucu: storageİnternette canlı bir üst düzey alan.
Michael Hampton

192.168.20.103'e 'ssh' gönderebiliyor musunuz?
IvanGoneKrazy

2
192.168.20.103 ana bilgisayar adını nerede tanımladınız? / etc / hosts?
Yetimler

4
FQDN yazmak bir acıdır. Öte yandan, .ssh / config dosyasındaki "storage" ifadesini "storage.mydomain.com" olarak adlandırmak gerçekten kullanışlıdır.
pjc50

1
@ pjc50 Yazıp stoSekme tuşuna basıyorum .
Michael Hampton

Yanıtlar:


28

sshve hosttamamen farklı yolları izleyerek isimleri çözümleyin, bu nedenle bazen çözülecek isim bir FQDN olmadığında (dolayısıyla her yerde FQDN'leri kullanma önerisi) farklı sonuçlar vermeleri şaşırtıcı değildir.

İşletim sisteminiz ve sistem yapılandırmanız hakkında hiçbir şeyden bahsetmiyorsunuz, bu yüzden Linux'u göz önünde bulundurarak genel tutmam gerekiyor: MacOS ayrıntıları biraz farklı ve Windows daha da fazla, ancak genel kavramlar aynı.

  • hostDNS'yi sorgular, bu nedenle temelde /etc/resolv.conforada listelenen sunucuları sorgular ve ana bilgisayar adı tam olarak nitelenmemişse bir etki alanı adı ekler. Her diğer olası kaynak yok sayar, ama bugünlerde birçok sistemler yerel önbelleğe alma DNS sunucusu (genellikle çalıştırmanızı dikkat dnsmasq) hangi okur /etc/hostsve diğer kaynaklardan diğer DNS sunucularını sorgulamadan önce eğer öyleyse hostsorguları yerel sunucu, elde edilen sonuçlar /etc/hostsiçinde kutu sünme.

  • sshkendi yolunu izler. opensshLinux altında neler yaptığını anlatacağım , diğer uygulamalar farklı. İlk olarak , yapılandırma dosyalarında (sistem çapında ve kullanıcı başına ) tanımlanan ana bilgisayar takma adlarını arar, ardından diğer kaynakları içindeki yönergede belirtilen sırayla arar . Bunun gibi bir şey olduğunu söyle:/etc/ssh/ssh_config~/.ssh/confighosts:/etc/nsswitch.conf

    hosts: files dns
    

    Bu şu anlama gelir: /etc/hostsDNS'ye bakın ve ardından sorgulayın ( /etc/resolv.conftekrar). Diğer olası kaynaklar eski nisve netinfohizmetler, LDAP, aktif dizin, onları adlandırın.

Özel durumunuzda hata ayıklamak için uygulamanızın izlediği yolu izlemeli sshve nerede takıldığını öğrenmelisiniz.


6
ltrace / strace, ssh'nin gerçekte etki alanını nasıl çözmeye çalıştığına dair ipuçları verebilir ... ve nasıl yapılır-os-nasıl-yapar-o, komut satırı dns aracı muhtemelen getent.
rackandboneman

/etc/nsswitch.confOkumayı değiştirme önerisi hosts: files dnsbenim için çalıştı. İlginç bir yan not olarak, son birkaç hafta içinde Raspian Jessie ile birkaç Raspberry Pis kurdum ve hepsi bu değişikliği gerektirdi.
Patrick Tucci
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.