SSH là một giao thức kết nối an toàn và đã được ITMaster.vn đề cập tới trong bài viết SSH là gì ? Tìm hiểu chi tiết về giao thức SSH
Tuy nhiên trong quá trình sử dụng phương thức kết nối SSH này thì sẽ không thể tránh khỏi những phát sinh lỗi không mong muốn. Ở bài viết này ITMaster.vn sẽ đưa ra bài giải cho vấn đề Connection Refused khi sử dụng SSH.
Nguyên nhân và cách xử lý lỗi Connection Refused ?

Connection Refused có nghĩa là kết nối của bạn bị từ chối. Có nhiều lý do tại sao bạn có thể gặp lỗi “Connection Refused” khi cố gắng SSH vào máy chủ. Để giải quyết vấn đề này, trước tiên bạn cần xác định lý do tại sao hệ thống từ chối kết nối của bạn qua SSH.
Một số lý do phổ biến gây ra lỗi Connection Refused.
Máy Client chưa cài đặt giao thức SSH.
Hãy chắc chắn rằng máy client đã cài đặt giao thức SSH. Với clients là máy tính hệ điều hành Windows thì SSH đã được tích hợp sẵn, đối với Ubuntu thì các bạn có thể kiểm tra với câu lệnh
ssh

Nếu sau khi gõ câu lệnh mà xuất hiện thông báo command not found thì có nghĩa giao thức SSH chưa được cài đặt. Cách cài đặt giao thức SSH như sau
Cài đặt giao thức kết nối SSH cho Client.
Đối với hệ thống Ubuntu/Debian:
sudo apt install openssh-client
Đối với hệ thống CentOS/RHEL:
sudo yum install openssh-client
SSH Daemon không được cài đặt trên máy chủ
Ở Client có cài đặt SSH thì ở Server cần phiên bản máy chủ để lắng nghe và chấp nhận kết nối. Do đó, máy chủ có thể từ chối kết nối đến nếu máy chủ SSH bị thiếu hoặc thiết lập không hợp lệ.
Để kiểm tra xem SSH có khả dụng trên máy chủ từ xa hay không, hãy chạy lệnh:
ssh localhost
Nếu đầu ra phản hồi với ” Connection Refused “, hãy chuyển sang cài đặt SSH trên máy chủ.

Cách cài đặt giao thức SSH trên máy chủ
Thông tin đăng nhập sai
Lỗi đánh máy hoặc thông tin đăng nhập không chính xác là những lý do phổ biến khiến kết nối SSH bị từ chối. Đảm bảo rằng bạn không nhập sai tên người dùng hoặc mật khẩu .
Thêm nữa, kiểm tra xem bạn có đang sử dụng đúng địa chỉ IP của máy chủ hay không.
Cuối cùng, xác minh rằng bạn đã mở đúng cổng SSH . Bạn có thể kiểm tra bằng cách chạy:
grep Port /etc/ssh/sshd_config

Service SSH không hoạt động
Dịch vụ SSH cần được kích hoạt và chạy ở chế độ nền. Nếu dịch vụ ngừng hoạt động, trình nền SSH không thể chấp nhận kết nối.
Kiểm tra trạng thái của service SSH với câu lệnh
sudo service ssh status
Đầu ra sẽ phản hồi rằng dịch vụ đang hoạt động. Nếu thiết bị đầu cuối phản hồi rằng dịch vụ ngừng hoạt động, hãy kích hoạt nó để giải quyết vấn đề.

Cách kích hoạt service SSH.
Nếu hệ thống hiển thị trình nền SSH không hoạt động, bạn có thể khởi động dịch vụ bằng cách chạy:
systemctl start sshd
Để cho phép dịch vụ chạy khi khởi động, hãy chạy lệnh:
sudo systemctl enable sshd
Tường lửa đang ngăn chặn kết nối SSH
SSH có thể từ chối kết nối do hạn chế của tường lửa. Tường lửa bảo vệ máy chủ khỏi các kết nối có khả năng gây hại.
Đảm bảo tường lửa không chặn các kết nối SSH vì điều này có thể gây ra lỗi ” connection reject “.
Trên Ubuntu có thể cho phép SSH đi qua tường lửa với câu lệnh
sudo ufw allow ssh
Cổng SSH bị đóng
Khi bạn thử kết nối với máy chủ từ xa, SSH sẽ gửi yêu cầu đến một cổng cụ thể. Để chấp nhận yêu cầu này, máy chủ cần mở cổng SSH.
Nếu cổng bị đóng, máy chủ sẽ từ chối kết nối.
Theo mặc định, SSH sử dụng cổng 22. Nếu bạn chưa thực hiện bất kỳ thay đổi cấu hình nào đối với cổng, bạn có thể kiểm tra xem máy chủ có đang lắng nghe các yêu cầu đến hay không.
Để liệt kê tất cả các cổng đang lắng nghe, hãy chạy:
sudo lsof -i -n -P | grep LISTEN
Tìm cổng 22 trong đầu ra và kiểm tra xem STATE của nó có được đặt thành LISTEN hay không .
Ngoài ra, bạn có thể kiểm tra xem một cổng cụ thể có đang mở hay không, trong trường hợp này là cổng 22:
sudo lsof -i:22

Để kích hoạt cổng 22 , hãy sử dụng iptables
sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
Bạn cũng có thể mở các cổng thông qua GUI bằng cách thay đổi cài đặt tường lửa.
Gỡ lỗi và ghi nhật ký SSH
Để phân tích các sự cố SSH trong Linux, bạn có thể bật chế độ verbose hoặc chế độ debugging . Khi bạn bật chế độ này, SSH sẽ in ra các thông báo gỡ lỗi giúp khắc phục sự cố về kết nối, cấu hình và xác thực.
Có ba mức độ chi tiết:
- cấp 1 (
-v
) - cấp 2 (
-vv
) - cấp 3 (
-vvv
)
Do đó, thay vì truy cập máy chủ từ xa bằng cú pháp , hãy ssh [server_ip]
thêm -v
tùy chọn và chạy:
ssh -v [server_ip]

Ngoài ra, bạn có thể sử dụng:
ssh -vv [server_ip]
hoặc là
ssh -vvv [server_ip]
Phần kết luận
Trên đây là một số lý do phổ biến gây ra lỗi Connection Refused khi sử dụng SSH. Để khắc phục lỗi này các bạn cần đọc kỹ và tìm ra chính xác nguyên nhân và đưa ra các xử lý chính xác. Bài viết này được tổng hợp và biên soạn bởi ITMaster.vn – Cung cấp dịch vụ IT.