Bagaimana saya bisa menulis ulang perintah berikut ProxyCommand
?
ssh -l username1 -t jumphost1 \
ssh -l username2 -t jumphost2 \
ssh -l username3 -t jumphost3 \
ssh -l username4 server
Ini tidak berhasil
ssh -o ProxyCommand="\
ssh -l username1 -t jumphost1 \
ssh -l username2 -t jumphost2 \
ssh -l username3 -t jumphost3" \
-l username4 server
username1@jumphost1's password:
Pseudo-terminal will not be allocated because stdin is not a terminal.
Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
ssh_exchange_identification: Connection closed by remote host
Saya mengetahui penggunaannya nc
, tetapi saya sedang mencari cara untuk menggunakannya dengan 3+ hop, dan juga menggunakan opsi ini dengan scp
. Saya memeriksa ssh_config
halaman manual, tetapi informasinya cukup langka, setidaknya bagi saya.
EDIT
Saya mencoba menggunakan ProxyCommand
bersarang di yang lain ProxyCommand
seperti yang disarankan di bawah ini tetapi saya selalu mendapatkan sesuatu di sepanjang baris berikut
debug3: ssh_init_stdio_forwarding: 192.17.2.2:2222
debug1: channel_connect_stdio_fwd 192.17.2.2:2222
debug1: channel 0: new [stdio-forward]
debug2: fd 4 setting O_NONBLOCK
debug2: fd 5 setting O_NONBLOCK
debug1: getpeername failed: Bad file descriptor
debug3: send packet: type 90
debug2: fd 3 setting TCP_NODELAY
debug3: ssh_packet_set_tos: set IP_TOS 0x10
debug1: Requesting [email protected]
debug3: send packet: type 80
debug1: Entering interactive session.
Untungnya, karena 7.3
-J
atau ProxyJump
melayani tujuan saya - meskipun saya masih harus memperbaiki pengaturan kunci saya.
ssh -q -J user1@jumphost1,user2@jumphost2,user3@jumphost3 user@server
scp
, karena SCP mengharapkan pesan kontrol SCP, tetapi sebaliknya mendapatkan pesan kontrol SSH dan gagal. Di sisi lain,ProxyCommand
ia melakukannya secara transparan dan karena itu yang paling luarssh
(atauscp
) akan mendapatkan pesan langsung dari ujung yang lain.>
prompt di mana menunggu untuk memecah kelanjutan garis, saya kira - yaitu, perintah tidak pernah dijalankan.%
harus berfungsi:%%h
dalam kasus AndaSaya telah melakukan ini dengan dua lompatan, tetapi itu harus bekerja untuk tiga. Cara paling sederhana adalah
~/.ssh/config
mengatur file pada setiap host. Jadi, jika Anda ingin aktifhosta
dan mengakseshostd
viahostb
dan hostc`, Anda dapat mengatur konfigurasi Anda sebagai berikut:Dalam
hosta:~/.ssh/config
:Dalam
hostb:~/.ssh/config
:Dalam
hostc:~/.ssh/config
:Anda kemudian dapat
ssh hostd
pada salah satu host di rantai dan Anda akan membuat jalan Andahostd
.Menggunakan netcat untuk proksi tidak mengganggu
scp
.Jika karena alasan tertentu Anda benar-benar tidak ingin menggunakan
~/.ssh/config
file lokal , Anda dapat melakukannya dihosta
:sumber
nc
akan penggunaannya. Bisakah Anda benar-benar menulis ulang perintah yang saya kirimProxyCommand
sebagai opsi?scp
". Itu tidak menggangguscp
. Tapi saya akan memberi Anda perintah panjang yang lucu sebagai suntingan segera.ProxyCommand
bersarang? Jika Anda membaca ulang posting saya, Anda akan melihat itulah intinya. Saya pikir saya bisa, bukannya bersarang seperti Anda, rantai semua node tengahProxyCommand
. Saya masih bertanya-tanya apakah itu mungkin terjadi.ProxyCommand
arahan bersama Anda ke host berikutnya dalam rantai.