Làm thế nào tôi có thể viết lại lệnh sau với ProxyCommand
?
ssh -l username1 -t jumphost1 \
ssh -l username2 -t jumphost2 \
ssh -l username3 -t jumphost3 \
ssh -l username4 server
Điều này không làm việc
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
Tôi biết về việc sử dụng nó với nc
, nhưng tôi đang tìm cách sử dụng nó với hơn 3 bước nhảy và cũng sử dụng tùy chọn này với scp
. Tôi đã kiểm tra ssh_config
trang người đàn ông, nhưng ít nhất là thông tin cho tôi.
BIÊN TẬP
Tôi đã thử sử dụng ProxyCommand
lồng trong một cái khác ProxyCommand
như được đề xuất dưới đây nhưng tôi luôn nhận được một cái gì đó dọc theo các dòng sau
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 no-more-sessions@openssh.com
debug3: send packet: type 80
debug1: Entering interactive session.
May mắn thay, vì 7.3
-J
hoặc ProxyJump
phục vụ mục đích của tôi - mặc dù tôi vẫn phải làm việc xung quanh việc thiết lập các phím của mình.
ssh -q -J user1@jumphost1,user2@jumphost2,user3@jumphost3 user@server