Cara SSH langsung ke target melalui jumphost menggunakan SSH Config tanpa perintah ssh tambahan

14

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.

AirCombat
sumber
1
-Jadalah ProxyJumpdan tidak HostName.
Boris the Spider

Jawaban:

21

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 jumphost.example.com

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:

Host everything, behind, jumphost, *.example.com
  ProxyJump jumphost.example.com

Sekarang Anda bisa berlari ssh target.example.comdan Anda akan melewati jumphost.

Michael Hampton
sumber
2

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

Nanzikambe
sumber