Tại sao tôi nhận được cổng Cổng 22: Kết nối bị từ chối lỗi?


70

Tôi đang nhận được một

port 22: Connection refused 

lỗi trong khi kết nối với máy chủ.

Tôi đã cài đặt cả máy khách và máy chủ openssh và chúng đang chạy. Nhưng vẫn có một lỗi. Xin vui lòng giúp đỡ.


2
Chỉ cần làm rõ, là máy chủ openssh được cài đặt trên máy chủ?
Kevin

Kiểm tra ssh đang chạy trên cổng 22 và nếu bạn có quy tắc tường lửa chặn cổng.
Manula Waidyanatha

1
Theo tôi, Cấu hình tường lửa sao cho nó ssh (cổng 22) hiện đang bị tường lửa chặn.
Ketan Patel


Điều này có thể xảy ra có thể do mất mạng tạm thời quá. Vì vậy, kiểm tra kết nối internet của bạn.
dùng648610

Câu trả lời:


78

Tôi đã trải qua vấn đề này và cuối cùng đã có câu trả lời thích hợp.

sudo apt-get update
sudo apt-get install openssh-server
sudo ufw allow 22

Sau đó đi vào raspi-configtrong một cửa sổ đầu cuối và kích hoạt ssh.

Điều này sẽ cho phép cổng 22 được sử dụng cho sshd.


Vấn đề tương tự ở đây là @SDsolar
Nadav B

@Nadiv, tôi cũng phải sử dụng raspi-config để kích hoạt ssh. Câu trả lời đã được chỉnh sửa để phản ánh điều này.
SDsolar

Thực hiện ba dòng đầu tiên trên cả hai máy tính và tệp hiện được chuyển thành công. Tại sao Ubuntu không đi kèm với những cài đặt / kích hoạt theo mặc định? Các connection refusedlỗi như vậy là khó hiểu, tôi không có ý tưởng nếu nó là một vấn đề tường lửa, phát hành Tên truy nhập, vấn đề địa chỉ IP, vv vv Rất bực bội.
Ghét bạn bè

sudo ufw allow 22làm việc một lần Một lần nữa lỗi bắt đầu xuất hiện.
Vineeshv

32

Trong khi trên máy chủ, hãy kiểm tra để đảm bảo sshd thực sự đang chạy và đang lắng nghe trên cổng 22:

$ sudo netstat -anp | grep sshd
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1538/sshd       
tcp6       0      0 :::22                   :::*                    LISTEN      1538/sshd       

Nếu bạn không nhận được kết quả hoặc họ không cho thấy bạn đang nghe trên tcp 0.0.0.0:22 ... hãy sửa nó.

Nếu bạn cho thấy sshd đang chạy và đang nghe trên cổng tcp 22, hãy kiểm tra để đảm bảo không có quy tắc tường lửa nào cản trở. Một lần nữa, trên máy chủ:

$ sudo iptables -L | grep ssh
DROP       tcp  --  anywhere             anywhere            tcp dpt:ssh 

Hoặc xen kẽ,

$ sudo ufw verbose
Status: active

To                         Action      From
--                         ------      ----
22                         DENY        Anywhere
22/tcp                     DENY        Anywhere

Nếu bạn thấy một quy tắc như một trong những quy tắc trên, bạn sẽ cần sửa nó.

Nếu bạn không thấy bất kỳ quy tắc tường lửa nào và bạn thấy dịch vụ đang chạy trên máy chủ, thì đã đến lúc kiểm tra máy trạm của bạn và mạng mà nó được kết nối. Bạn có thể kết nối với các máy chủ khác? Bạn có thể ping giao diện hoặc địa chỉ loopback của riêng bạn? Vân vân.


1
và nếu bạn có thể kết nối với các máy chủ khác?
opensourcechris

2
Xin cảm ơn vì câu trả lời, của tôi không phải là cổng 22, là 2222. Bạn nói, sửa nó đi, nhưng bằng cách nào?
Yogesh Darji

Của tôi không có kết quả.
SDsolar

sửa lỗi bằng: sudo ufw allow 22(hoặc bất kể cổng của bạn là gì)
John D

netstat không được dùng nữa (và không được cài đặt theo mặc định trên các phiên bản Ubuntu mới hơn - Không tìm thấy lệnh 'netstat', nhưng có thể được cài đặt bằng ... ). Có lẽ cập nhật cho iproute2 ?
Peter Mortensen

14

Thử đi

sudo apt-get remove openssh-client openssh-server

và sau đó

sudo apt-get install openssh-client openssh-server

nó làm việc cho tôi :)

Có lẽ không phải là giải pháp chính thống nhất ... :)


3
Sử dụng dpkg-cấu hình lại có thể dễ sử dụng hơn thay cho giải pháp gỡ cài đặt / cài đặt lại
Stephen Michael Kellat

1
Tôi đã phải sử dụng apt-get purge openssh-server (thay vì gỡ bỏ) để làm cho nó hoạt động.
11101101b

6

Đã gặp vấn đề tương tự sau khi cài đặt Raspbian. Giải pháp hiệu quả với tôi:

sudo apt-get purge openssh-server
sudo apt-get install openssh-server

Nếu điều này hoạt động, bạn phải thay đổi sshd-config của bạn trước đó.
guntbert

Tôi đã chỉnh sửa sshd_config trên Raspbian trong khi cố gắng thiết lập ssh. Giải pháp này đã làm việc cho tôi.
Scott

+1. Chỉ có giải pháp mà làm việc!
Nadav B

1

Các lệnh sau làm việc cho tôi:

cd /root/.ssh
vi known_hosts

Bây giờ xóa mọi thứ trong tập tin đó và nhập vào thiết bị đầu cuối:

service sshd restart

Nguồn: SSH - Kết nối bị từ chối


vấn đề tương tự đối với tôi, nhưng tôi đã xóa những cái đã biết của mình ssh-keygen -f "/home/MYUSER/.ssh/known_hosts" -R MYHOST, thay vào đó là người dùng linux và máy chủ từ xa mà tôi đang cố gắng kết nối
Chris

1

Điều này có thể khắc phục nó cho bạn là tốt. Hãy thử kết nối chuyển tiếp cổng 22 từ địa chỉ IP gửi đến IP cục bộ của bạn trên cùng một cổng. Làm việc cho tôi cho phép tôi ssh vào máy tính Ubuntu từ xa.


0

IP tĩnh đã sai trong trường hợp của tôi. Tìm ra bằng cách làm ping <my_ip>sau khi chuyển đổi của máy chủ. Nó vẫn bị ping ngay cả khi máy chủ tắt. Thay đổi IP đã giải quyết vấn đề.

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.