ssh
dan host
menyelesaikan nama-nama mengikuti jalur yang sama sekali berbeda, sehingga tidak mengherankan bahwa mereka kadang-kadang menghasilkan hasil yang berbeda, terutama ketika nama untuk menyelesaikan bukan FQDN (maka saran untuk menggunakan FQDN di mana-mana.)
Anda tidak menyebutkan apa pun tentang OS dan konfigurasi sistem Anda, jadi saya harus menjaganya agar tetap umum, dengan memperhatikan Linux: Rincian MacOS agak berbeda, dan Windows bahkan lebih, tetapi konsep umumnya sama.
host
kueri DNS, jadi pada dasarnya ia mencari /etc/resolv.conf
dan menanyakan server yang terdaftar di sana, mungkin melampirkan nama domain jika nama host belum sepenuhnya memenuhi syarat. Ini mengabaikan setiap sumber lain yang mungkin, tetapi berhati-hatilah bahwa hari ini banyak sistem menjalankan server DNS caching lokal (biasanya dnsmasq
) yang membaca /etc/hosts
dan sumber-sumber lain sebelum menanyakan server DNS lain, jadi jika host
menanyakan server lokal itu, hasil dari /etc/hosts
dapat merangkak masuk.
ssh
mengikuti jalannya sendiri. Saya akan menjelaskan apa yang openssh
ada di Linux, implementasi lainnya berbeda. Pertama ia mencari nama panggilan host yang didefinisikan dalam file config (sistem-lebar /etc/ssh/ssh_config
dan per-pengguna ~/.ssh/config
), kemudian mencari sumber lain dalam urutan yang ditentukan oleh hosts:
arahan dalam /etc/nsswitch.conf
. Katakan itu sesuatu seperti:
hosts: files dns
ini berarti: lihat /etc/hosts
lalu minta DNS ( /etc/resolv.conf
lagi). Sumber lain yang mungkin adalah usang nis
dan netinfo
layanan, LDAP, direktori aktif, sebut saja mereka.
Untuk men-debug kasus khusus Anda, Anda harus mengikuti jalur implementasi yang ssh
diikuti dan mencari tahu di mana ia terjebak.
storage
adalah domain tingkat atas langsung di Internet.