Saya mencoba menyiapkan wadah buruh pelabuhan yang saya gunakan untuk melewati firewall/NAT untuk memungkinkan akses SSH ke komputer di balik hambatan perutean ini. Intinya, saya memiliki layanan SSH yang mendengarkan di dalam wadah docker, yang terhubung dengan komputer saya yang lain, membuka penerusan port SSH terbalik, dan kemudian jika saya ingin terhubung ke komputer di belakang firewall, saya malah terhubung ke server proxy dockerized saya di Port terbalik. Contoh:
Komputer firewall" Bob " terhubung ke server proxy:
ssh -R 2024:localhost:22 -N remote.server
Selanjutnya, saya terhubung ke server jarak jauh di port 2024
sehingga untuk mengikuti terowongan kembali ke bawah dan terhubung ke localhost:22
pada bob:
ssh -p 2024 remote.server
Ini semua berfungsi dengan baik ketika tidak dockerized, namun ketika saya mencoba memindahkan ini ke layanan dockerized, saya menemukan bahwa saya sshd
server dalam wadah docker dengan keras kepala menolak untuk membuka port jarak jauh ke depan. Menghubungkan dengan ssh -vvv
pada langkah pertama di atas memberikan:
...debug1: Entering interactive session.debug1: pledge: networkdebug3: receive packet: type 4debug1: Remote: Server has disabled port forwarding.debug3: receive packet: type 82debug1: remote forward failure for: listen 2024, connect localhost:22Warning: remote port forwarding failed for listen port 2024debug1: All remote forwarding requests processed
Yang terdengar banyak seperti saya sshd
tidak diatur untuk mengizinkan penerusan port jarak jauh. Namun, saya sshd_config
tampaknya berpikir itu adalah:
# tail /etc/ssh/sshd_config -n 5GatewayPorts yesAllowTcpForwarding yesAllowStreamLocalForwarding yesPermitTunnel yesUsePrivilegeSeparation no
Sesungguhnya berlari dengan ssh -ddd
di dalam wadah buruh pelabuhan, kemudian menghubungkan dengan garis di atas menunjukkan pertama:
debug3: /etc/ssh/sshd_config:91 setting GatewayPorts yesdebug3: /etc/ssh/sshd_config:92 setting AllowTcpForwarding yesdebug3: /etc/ssh/sshd_config:93 setting AllowStreamLocalForwarding yesdebug3: /etc/ssh/sshd_config:94 setting PermitTunnel yesdebug3: /etc/ssh/sshd_config:95 setting UsePrivilegeSeparation no
Diikuti oleh:
debug1: server_input_global_request: rtype tcpip-forward want_reply 1debug1: server_input_global_request: tcpip-forward listen localhost port 2024debug1: server_input_global_request: rtype no-more-sessions@openssh.com want_reply 0
Jadi jelas konfigurasi saya diatur dengan benar, tetapi tampaknya klien masih berpikir server tidak dapat melakukan penerusan port. Bagaimana Saya bisa meyakinkan server openssh untuk melakukan penerusan jarak jauh? Apa yang bisa menyebabkan kegagalan ini?
Klien sedang berjalan OpenSSH_7.2p2 Ubuntu-4ubuntu2.4
, server sedang berjalan OpenSSH_6.7p1 Debian-5+deb8u4
, versi docker adalah 17.09.1-ce
on Amazon Linux 2017.09
.
Terima kasih!