Tôi đã xây dựng một dịch vụ tạo đường hầm SSH chạy trong vùng chứa dựa trên Alpine, dựa trên cách tiếp cận được nêu ở đây: https://github.com/cagataygurturk/docker-ssh-tunnel
Dịch vụ kết nối qua IdentityFiles và thiết lập nhiều ControlSockets và đường hầm.
Tôi đang thử nghiệm tính năng này trên một pháo đài Amazon Linux, tạo đường hầm xuyên qua cơ sở dữ liệu PostgreSQL.
Đăng nhập SSH và tạo đường hầm là chính xác và các đường hầm có thể được sử dụng, nhưng dường như đã hết thời gian chờ ở đâu đó.
- Nếu một đường hầm - có thể là toàn bộ kết nối đến máy chủ SSH mục tiêu? - không hoạt động trong 5 phút và sau đó kết nối với, quá trình kết nối bị treo trong 30 giây trước khi tiếp tục thành công.
- Kết nối đường hầm ngay sau kết nối đầu tiên nhanh chóng - dưới giây.
- Để đường hầm/máy chủ không hoạt động trong 5 phút và độ trễ 30 giây sẽ quay trở lại.
Đây là bằng chứng:
máy khách ssh-config
Lưu trữ pháo đài của tôi
Tên máy chủ 99,99,99,99
Người dùng ec2-người dùng
IdentityFile ~/.ssh/key.pem
Chủ nhà *
ControlMaster tự động
ControlPath ~/.ssh/controlmasters/cp_%r_%h
Kiểm soátKiên trì có
StrictHostKeyKiểm tra không
ServerAliveCountTối đa 60
ServerAliveInterval 30
TCPKeepAlive không
ForkafterAuthentication có
StdinNull có
ExitOnForwardFailure yes
IPQoS 0x00
quy trình làm việc thử nghiệm
Đường hầm được thiết lập trước đó bằng ControlSocket.
Thử nghiệm với yêu cầu psql không xác thực được, nhưng thực hiện đường hầm.
psql tạo 2 kết nối qua đường hầm trong quá trình thử nghiệm.
Lần truy cập đầu tiên sau ít nhất 5 phút không hoạt động.
# ngày && giờ psql "host=cổng localhost=5430 dbname=xxx user=UUU password=X"
Thứ ba ngày 8 tháng 3 12:10:57 PST 2022
psql: lỗi: FATAL: xác thực mật khẩu không thành công cho người dùng "UUU"
FATAL: xác thực mật khẩu không thành công cho người dùng "UUU"
0m32.497s thực - chậm!
Nhật ký máy khách SSH -vv
yêu cầu psql đầu tiên
[2022-03-08 20:10:57] debug1: Kết nối với cổng 5430 đang chuyển tiếp tới xxx.us-east-1.rds.amazonaws.com đã yêu cầu cổng 5432.
[2022-03-08 20:10:57] debug1: kênh 3: mới [tcpip trực tiếp]
Trì hoãn 30 giây tại đây
[2022-03-08 20:10:57] debug2: kênh 3: mở xác nhận rwindow 2097152 rmax 32768
[2022-03-08 20:11:29] debug2: kênh 3: đọc<=0 rfd 7 len 0
yêu cầu psql thứ 2
[2022-03-08 20:11:29] debug1: Kết nối với cổng 5430 đang chuyển tiếp tới xxx.us-east-1.rds.amazonaws.com đã yêu cầu cổng 5432.
[2022-03-08 20:11:29] debug1: kênh 4: mới [tcpip trực tiếp]
phản hồi thứ hai trên kênh 4
[2022-03-08 20:11:29] debug2: kênh 4: mở xác nhận rwindow 2097152 rmax 32768
[2022-03-08 20:11:29] debug2: kênh 4: đọc<=0 rfd 8 len 0
Truy cập ngay sau lần đầu tiên.
# ngày && giờ psql "host=cổng localhost=5430 dbname=xxx user=UUU password=X"
Thứ ba ngày 8 tháng 3 12:11:41 PST 2022
psql: lỗi: FATAL: xác thực mật khẩu không thành công cho người dùng "UUU"
FATAL: xác thực mật khẩu không thành công cho người dùng "UUU"
thực 0m0.874s - nhanh!
người dùng 0m0.021s
hệ thống 0m0.016s
yêu cầu psql đầu tiên
[2022-03-08 20:11:41] debug1: Kết nối với cổng 5430 đang chuyển tiếp tới xxx.us-east-1.rds.amazonaws.com đã yêu cầu cổng 5432.
[2022-03-08 20:11:41] debug2: cài đặt fd 7 TCP_NODELAY
[2022-03-08 20:11:41] debug2: cài đặt fd 7 O_NONBLOCK
[2022-03-08 20:11:41] debug1: kênh 3: mới [tcpip trực tiếp]
Phản hồi thứ hai cho yêu cầu
[2022-03-08 20:11:41] debug2: kênh 3: mở xác nhận rwindow 2097152 rmax 32768
[2022-03-08 20:11:42] debug2: kênh 3: đọc<=0 rfd 7 len 0
...
yêu cầu psql thứ 2
[2022-03-08 20:11:42] debug1: Kết nối với cổng 5430 đang chuyển tiếp tới xxx.us-east-1.rds.amazonaws.com đã yêu cầu cổng 5432.
[2022-03-08 20:11:42] debug1: kênh 4: mới [tcpip trực tiếp]
[2022-03-08 20:11:42] debug2: kênh 4: mở xác nhận rwindow 2097152 rmax 32768
Tôi đã tìm kiếm những người khác có vấn đề này, nhưng không tìm thấy vấn đề này đang được nói đến. Tôi đã thử lời khuyên từ https://jrs-s.net/2017/07/01/slow-ssh-logins/ và đặt IpQos=0x00 để khắc phục mọi sự cố bộ định tuyến tiềm ẩn.