Tôi có hai máy tính đằng sau cùng một bộ định tuyến. Hãy gọi cho họ A và B.
Một người có thể SSH để B, cách sau đây: ssh usr@<internal ip of computer>
B có thể SSH để Một bởi làm như vậy, nhưng IP bên ngoài phải được sử dụng. Tôi đã chuyển cổng 22 của tôi bộ địa chỉ IP của máy tính, Một, vì vậy mà tất cả các có ý nghĩa với tôi.
Tuy nhiên, tôi cũng muốn về phía trước cổng 26 đến máy tính, B, và SSH từ bên ngoài mạng bằng cách sử dụng IP bên ngoài cho cả hai, nhưng chỉ định hoặc là cổng 22 hoặc 26, để có hiệu quả chọn mà máy tính để sử dụng.
Tôi đã cố gắng cho phép cổng 26 qua RA iptables trên đầu VÀO của A và B, nhưng mà có vẻ không phải làm việc. Tôi cũng đã chuyển cổng 26 vào bộ địa chỉ IP của B (thông qua các bộ định tuyến), như tôi đã làm với 22 cho A.
Đây là những gì tôi nhận được khi tôi cố gắng để SSH từ Một đến B sử dụng IP bên ngoài và cổng 26:
ssh: connect to host xx.xx.xxx.xx port 26: Connection refused.
Một phiên bản:
Một = OpenSSH_5.9p1 Chạy 5ubuntu1, Doc 1.0.1 14 Mar 2012
B = OpenSSH_6.0p1 Chạy 4, Doc 1.0.1 c 10 Tháng năm 2012
Một đã 12.04 Dung B là một Mâm xôi với đặt hàng trước
EDIT: một cái Gì đó mà tôi quên đưa: tôi đã cố gắng chuyển SSH cấu hình thấy (tôi tìm thấy nó /etc/ssh/ssh_config) Tôi không chú thích (xóa #) các phù hợp với Port và thay đổi 22 đến 26. Nó đã cho tôi sự kết nối từ chối tin nhắn vẫn còn. (Tôi khởi động lại không có kết quả.)
Nó có vẻ như anh không chạy SSH trên cổng 26 trên máy thứ hai. Bạn có thể thay đổi số cổng trên máy đó đến 26.
Hoặc chỉnh sửa /etc/ssh/sshd_config và đừng quên để khởi động lại SSH (service sshd restart) hoặc để nó trên 22, nhưng về phía trước cổng 26 trên bộ định tuyến đến cổng 22 ngày thứ hai máy. Cũng đừng quên thay đổi bất kỳ cài đặt tường lửa vào thứ hai máy cho phép kết nối thông qua.
Tôi sử dụng cổng 22 chỉ cho mạng nội bộ truy cập ssh.
Để truy cập qua internet tôi sử dụng (bất thường) cảng.Điều này có lợi cho tôi giảm tải sản xuất được tạo ra bởi kịch bản trẻ em, những người đang quét cổng 22 cho "cũng được biết đến tên".
Những bên ngoài sshd quá trình được điều khiển bởi xinetd và chạy trong song song với những nội bộsshd quá trình.Trong ví dụ sau tôi sử dụng các cổng 12345:
Bạn đang phí để thay đổi điều này với bất kỳ sẵn miễn phí cổng số trên hệ thống của bạn.Có lẽ một giá trị cao hơn sẽ làm cho nó còn hơn một chút chắc rằng cổng này sẽ được quét bởi một "nhanh cổng quét".
Những xinetd cấu hình:
service ssh-external{ socket_type = stream wait = no protocol = tcp type = UNLISTED user = root server = /usr/sbin/sshd server_args = -i -f /etc/ssh/external-sshd.config port = 12345 log_on_failure += USERID}
Các tập tin /etc/ssh/external-ssdh.config có thể là một bản sao thông thường của bạn sshd cấu hình.Đảm bảo rằng các báo cáo sau đây được cấu hình:
Port 12345AddressFamily inet
Tôi cũng đề nghị để thực thi công chính xác thực và vô hiệu hóa mật khẩu chứng thực cho internet:
PasswordAuthentication noPermitEmptyPasswords noChallengeResponseAuthentication no
Như tôi đã giải thích trong một liên quan, câu trả lời ssh khách hàng cho phép xác định URI dạng ssh://user@host:1234. Ví dụ::
ssh ssh://myuser@mydomain.com:2222
nơi 2222 là số cổng. Thay thế các cổng số mà bạn có ý định sử dụng để thay thế. Tất nhiên, hãy nhớ rằng, để kết nối với các quy định cổng ssh (trên máy chủ mà bạn đang cố gắng để kết nối) đã nghe về các quy định cảng ở nơi đầu tiên
Không phải là một ý tưởng tốt để chạy ssh trên cổng mặc định (TCP/22), không phải từ phía trước WAN IP 22 đến bất cứ cảng được sử dụng ssh-máy chủ trên LAN IP.
Để làm cho ssh-máy chủ nghe về bất cứ cảng, ông phải
Chỉnh sửa /etc/ssh/sshd_config (chú ý d) từ #Port 22 đến Port 26. Tức là, bỏ ghi chú và thay đổi các cảng. Tốt hơn 26 sẽ được một cái gì đó ở trên ngẫu nhiên (dưới đây, 65535), giống như 42895. Cũng xem xét để thay đổi PermitRootLogin no.