Saya mencoba melakukan tunnel ke server melalui server jembatan. Sejauh ini, saya bisa membuatnya bekerja dari shell perintah dengan benar menggunakan perintah berikut:
ssh -A -t [email protected] ssh -A [email protected]
Tapi saya sudah mencoba untuk membungkus ini ke dalam ~/.ssh/config
saya file dan saya memiliki masalah. Saya sudah mencoba:
Host axp
User remote_userid
HostName remoteserver.com
IdentityFile ~/.ssh/id_rsa.eric
ProxyCommand ssh -A -t [email protected]_userid.com ssh -A [email protected]%h
Tetapi ketika saya melakukannya, saya mendapatkan pesan kesalahan berikut dari remoteserver.com
dan saya tidak yakin apa penyebabnya:
ksh:SSH-2.0-OpenSSH_6.8^M:tidak ditemukan
Saya tahu itu ketika saya masuk ke remoteserver.com
, shell saya adalah /usr/bin/ksh
.
Saya sudah mencoba menambahkan argumen jalur ke perintah ssh di file konfigurasi, tetapi tidak ada bedanya.
Ada ide apa itu?
Jawaban yang Diterima:
Jawaban Jakuje benar, tetapi karena OpenSSH 7.3
, Anda sekarang dapat menggunakan -J
ProxyJump
yang lebih mudah. Lihat catatan saya:
OpenSSH 7.3
atau lebih
Gunakan ProxyJump
. Seperti yang dijelaskan dalam manual:
-J [[email protected]]host[:port]
Hubungkan ke host target dengan terlebih dahulu membuat koneksi ssh ke jump host dan kemudian membuat penerusan TCP ke tujuan akhir dari sana. Beberapa lompatan lompat dapat ditentukan dengan dipisahkan oleh karakter koma. Ini adalah jalan pintas untuk menentukan arahan konfigurasi ProxyJump.
ProxyJump ~/.ssh/config
contoh
~/.ssh/config
Host server1
Hostname server1.example.com
IdentityFile ~/.ssh/id_rsa
Host server2_behind_server1
Hostname server2.example.com
IdentityFile ~/.ssh/id_rsa
ProxyJump server1
Terhubung dengan
ssh server2_behind_server1 -v
Tambahkan -v
untuk keluaran verbose
ProxyJump -J
Contoh baris perintah
~/.ssh/config
Host server1
Hostname server1.example.com
IdentityFile ~/.ssh/id_rsa
Host server2
Hostname server2.example.com
IdentityFile ~/.ssh/id_rsa
Terhubung dengan
ssh server2 -J server1 -v
Atau gunakan -o
ssh server2 -o 'ProxyJump server1' -v
OpenSSH 5.4
atau lebih
Gunakan ProxyCommand
dengan -W
~/.ssh/config
Host server1
Hostname server1.example.com
IdentityFile ~/.ssh/id_rsa
Host server2
Hostname server2.example.com
IdentityFile ~/.ssh/id_rsa
ProxyCommand ssh server1 -W %h:%p
Terhubung dengan
ssh server2 -v
Atau gunakan -o
ssh server2 -o 'ProxyCommand ssh server1 -W %h:%p' -v
OpenSSH di bawah 5.4
~/.ssh/config
Host server1
Hostname server1.example.com
IdentityFile ~/.ssh/id_rsa
Host server2
Hostname server2.example.com
IdentityFile ~/.ssh/id_rsa
ProxyCommand ssh server1 nc %h %p 2> /dev/null
Terhubung dengan:
ssh server2 -v
Atau gunakan -o
ssh server2 -o 'ProxyCommand ssh server1 nc %h %p 2> /dev/null' -v
Sumber
-J
ditambahkan di OpenSSH 7.3
- ssh(1):Tambahkan opsi ProxyJump dan tanda baris perintah -J
yang sesuai untuk memungkinkan tipuan yang disederhanakan melalui satu atau beberapa SSH
bastion atau “jump host”.
-W
ditambahkan di OpenSSH 5.4
- Menambahkan 'mode netcat' ke ssh(1):“ssh -W host:port …” Ini menghubungkan
stdio pada klien ke satu port forward di server. Ini
memungkinkan, misalnya, menggunakan ssh sebagai ProxyCommand untuk merutekan koneksi
melalui server perantara. bz#1618