Jika aku melakukan:
ssh -J jumphost.example.com target.example.com
Saya akhirnya langsung masuk ke 'target'.
Jika saya menggunakan file konfigurasi ssh ini, gunakan konfigurasi melompat ssh-7.3 yang lebih baru:
Host jump 10.1.*, targets*, *.example.com
HostName jumphost.example.com
IdentitiesOnly yes
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_rsa
Host *
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_rsa
Saya akhirnya masuk ke 'jumphost' bukan 'target'
Mereka gantungan kunci untuk mac, saya telah menguji tanpa itu dan tidak ada bedanya tetapi saya pikir saya akan membiarkannya untuk berjaga-jaga.
-J
adalahProxyJump
dan tidakHostName
.Jawaban:
Anda akhirnya masuk ke host melompat karena konfigurasi Anda secara eksplisit mengatakan untuk mengabaikan nama host yang Anda tentukan dan masuk ke host melompat.
HostName
mengganti nama host yang ditentukan pada baris perintah.Jika Anda mencoba untuk secara otomatis menggunakan host melompat tanpa harus menentukannya pada baris perintah ssh, opsi file konfigurasi yang benar adalah
ProxyJump
. Sebagai contoh:Sekarang Anda bisa berlari
ssh target.example.com
dan Anda akan melewati jumphost.sumber
Masalahnya adalah bahwa definisi Host menangkap jumphost.example.com DAN target.example.com sebagai alias, kemudian menetapkan HostName ke jumphost.example.com dalam kedua kasus.
Saya akan menyarankan untuk membuat alias mengikuti perintah Host TIDAK nama domain yang sepenuhnya memenuhi syarat, kemudian membuat entri Host untuk masing-masing
sumber