Máy chủ Cygwin ssh không chấp nhận kết nối


14

Tôi vừa thiết lập máy chủ SSH (OpenSSH) trên máy Windows 7 bằng cygwin và tôi đang cố gắng kết nối với nó bằng PuTTY trên máy Windows Vista nhưng tôi vẫn hết thời gian kết nối. Tôi đã kiểm tra hoạt động mạng trên máy Win 7 bằng Wireshark và thấy rằng tôi đang nhận TCP SYN trên cổng 22 trên máy Win 7, nhưng máy chủ ssh dường như không trả lời. Tôi đã kiểm tra số cổng sshd được cấu hình để sử dụng, kiểm tra các quy tắc tường lửa của tôi và xác minh rằng tôi có thể ssh localhost (mà tôi có thể ổn). Tôi hoàn toàn không biết làm thế nào để khắc phục sự cố này.


Bạn có thể nên kiểm tra lại tường lửa của mình và / hoặc giải thích chi tiết về khía cạnh này.
jjlin

Câu trả lời:


23

Bạn có thể chạy Windows Firewall. Mở: Bảng điều khiển -> Tường lửa Windows -> Cho phép chương trình hoặc tính năng thông qua Tường lửa Windows

Nhấp vào nút "Thay đổi cài đặt" rồi nút "Cho phép chương trình khác ...". SSHD có thể không có trong danh sách xuất hiện, vì vậy hãy sử dụng nút "Duyệt ..." để tìm tệp nhị phân và nhấp vào "Mở" và sau đó "Thêm". Của tôi là trong C: \ cygwin \ usr \ sbin \ sshd.exe

Ở đâu đó trong đó bạn có thể quyết định "Loại vị trí mạng ..." nào bạn muốn sử dụng. Tôi để lại của tôi với tư nhân được kiểm tra và công khai không được kiểm tra. Bây giờ tôi có thể đăng nhập từ xa.


Hơn nữa với câu trả lời của Frank , khi tôi cài đặt VPN riêng tư trên máy tính trên mạng gia đình, tôi đã thấy vấn đề tương tự. Đó là bởi vì với VPN, máy tính hiện đang kết nối với sshd trên mạng công cộng. Để khắc phục điều này, tôi đã phải cho phép sshd thông qua Windows Firewall cho các vị trí công cộng cũng như riêng tư.
James Hirschorn

5

Liệu bạn sshd_config định ListenAddress như 0.0.0.0 hoặc 127.0.0.1 ?

Nếu đó là 0.0.0.0 hoặc chỉ nhận xét, thì bạn có thể kết nối từ bên ngoài máy, tức là từ một máy tính khác.

Nếu là 127.0.0.1 (hoặc bất kỳ số 127.0.0.x nào khác ), thì CHỈ nghe trên LOCALHOST và bạn chỉ có thể đăng nhập từ máy CÙNG. Máy bên ngoài bị từ chối.


2
Nó nhận xét ra.
Surma

1

Sau khi loay hoay với tường lửa windows không có tác dụng, cuối cùng tôi thấy rằng tôi phải cho phép kết nối với mạng con của chính tôi trong chính Cygwin thông qua tệp /etc/hosts.allow.

Dòng này (sử dụng mạng con của tôi) làm quy tắc đầu tiên đã khắc phục sự cố cho tôi.

TẤT CẢ: 192.168.0.0/24: cho phép


1
Một vấn đề với hosts.allow hoặc hosts.deny sẽ không gây ra thời gian chờ kết nối. Nó sẽ khiến máy chủ SSH chấp nhận kết nối, sau đó hủy kết nối trong quá trình xác thực.
Kenster

@Kenster hosts.allow và hosts.deny hoạt động ở cấp TCP. Bạn sẽ không thể kết nối với máy chủ SSH vì bạn bị chặn ở lớp 4, trước cả khi đến máy chủ SSH.
mtak

@mtak Không, điều đó không đúng. hosts.allow và hosts.deny là các tệp cấu hình cho TCP Wrappers . Chương trình máy chủ (sshd trong trường hợp này) phải chấp nhận kết nối TCP, lấy địa chỉ IP của điểm cuối từ xa, sau đó gọi trình bao bọc TCP để xem liệu máy khách có được phép không. Nếu libwrap nói không, thì máy chủ thường ngắt kết nối.
Kenster

Xem ví dụ sshd.c . Hãy tìm ifdefs LIBWRAP. Đây là hàm hosts_access mà sshd đang gọi. Tôi cũng sẽ lưu ý rằng phiên bản mới nhất của sshd.c sẽ xóa hỗ trợ libwrap.
Kenster

@Kenster, xấu của tôi, bạn đúng. Tôi đã thử nó và tôi nhận được lỗi sau : ssh_exchange_identification: Connection closed by remote host. Chúc một ngày tốt lành trên SU :)
mtak

1

Đối với tôi vấn đề là quyền sở hữu /var/emptytập tin không chính xác . Vấn đề trở nên rõ ràng sau khi đặt sshd trong chế độ gỡ lỗi với /usr/sbin/sshd.exe -D -dd. Tôi đã phải sửa nó bằng:

chown [user]:[group] /var/empty

Người dùng và nhóm được lấy từ ls -la /varthư mục (chỉ khớp với các tệp khác). Xem thêm thông tin tại đây: https://docs.oracle.com/cd/E24628_01/install.121/e22624/preinstall_Vq_cygwin_ssh.htmlm#EMBSC340


Cảm ơn bạn đã chỉ rasshd -D -dd
John Oxley

0

Hãy chắc chắn rằng bạn đang thắng 7 Antivirus không chặn cổng 22. Ngoài ra, hãy truy cập bảng điều khiển dịch vụ windows của bạn và tìm kiếm CYGWINsshd và kích hoạt nó. đặt đăng nhập để xác định vị trí và kiểm tra hộp.

Điều đó sẽ khắc phục sự cố: user @ mymachine ~ $ net start sshd Lỗi hệ thống 1069 đã xảy ra.

Dịch vụ đã không bắt đầu do lỗi đăng nhập.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.