Lỗi SSH “Connection refused” là gì?
SSH (Secure Shell) là giao thức được dùng để truy cập an toàn và máy chủ từ xa bằng giao diện dòng lệnh. Nó có thể thực hiện nhiều tác vụ khác nhau, đồng thời cho phép bạn sử dụng một số công cụ phát triển quan trọng như WP-CLI ( dòng lệnh WordPress), Composer ( trình quản lý gói PHP), Git, npm (trình quản lý gói JavaScript.
Lỗi SSH Connection Refused xảy ra khi người dùng không thể kết nối với máy chủ SSh. Điều này xảy ra khi máy chủ không chấp nhận kết nối hoặc có sự cố với kết nối mạng giữa máy khách và máy chủ. Lỗi này có thể đến từ một số yếu tố tiềm ẩn như:
- Sự cố mạng: mạng chậm có thể ảnh hưởng đến kết nối SSH
- Thông tin đăng nhập không chính xác: có thể có sự sai sót trong tên máy chủ, tên người dùng, mật khẩu hoặc cổng, khiến cho SSH không kết nối thành công.
- SSH chưa được cài đặt: Một số gói lưu trữ chuyên dụng có thể yêu cầu cài đặt thủ công. Thường một số máy chủ lưu trữ web sẽ có sẵn SSH.
- SSH ngừng hoạt động: SSH có thể bị gián đoạn do tấn công mạng hoặc lưu lượng truy cập tăng quá mức
- Hạn chế tường lửa: Một số đơn vị như trường học, công ty thường chặn lưu lượng truy cập trên Port 22 ( kết nối SSH port 22 bị từ chối), cổng SSH mặc định.
Sau đây chúng ta sẽ đi sâu vào từng nguyên nhân và cách sửa lỗi SSH Connection refused khi kết nối đến máy chủ từ xa nhé!
5 Nguyên nhân và cách khắc phục lỗi SSH Connection refused
SSH Client chưa được khởi động trên máy chủ cục bộ
Nguyên nhân: Một trong những nguyên nhân chính gây ra lỗi SSH Connection Refused là do thiếu phần mềm SSH Client cài đặt trên máy chủ cục bộ. Phần mềm này có vai trò quan trọng để tạo kết nối an toàn đến máy chủ SSH bằng cách triển khai giao thức SSH. Khi máy chủ không có phần mềm SSH Client, khả năng khởi tạo yêu cầu kết nối đến máy chủ SSH bị cản trở, dẫn đến lỗi Connection Refused.
Cách khắc phục:
Bạn cần xác định xem bạn đã cài đặt SSH Client trên hệ thống của mình chưa thông qua cửa sổ Terminal. Bạn chỉ cần nhập “ssh -V” và Enter để xem kết quả.
Nếu Terminal hiển thị danh sách các tùy chọn lệnh ssh khả dụng, có nghĩa là SSH Client đã được cài trên hệ thống của bạn. Tuy nhiên, nếu kết quả là command not found thì có nghĩa SSH Client chưa được cài đặt. Lúc này bạn cần cài đặt OpenSSH Client để bật chức năng SSH.
Để cài đặt SSH Client trên máy của bạn, bạn làm như sau:
Mở Terminal tùy theo hệ điều hành bạn có và chạy các lệnh sau:
- Với HĐH Ubuntu/Debian: sudo apt install openssh-client
- Với HĐH CentOS/RHEL: sudo yum install openssh-client
Sau đó tiến hành các bước để bật quyền truy cập SSH trên hệ thống của bạn
Thiếu cài đặt SSH Daemon trên máy chủ từ xa
Nguyên nhân: Lỗi SSH Connection refused có thể do máy chủ SSH bị thiếu hoặc cấu hình không đúng, dẫn đến máy chủ từ chối các yêu cầu kết nối đến.
Nếu Daemon SSH không khả dụng hoặc không chạy cũng có thể dẫn đến việc ngăn chặn các kết nối đến máy chủ cục bộ SSH.
Cách khắc phục:
Hầu hết các công ty cung cấp dịch vụ lưu trữ web thường bao gồm một Daemon SSH được cài đặt sẵn trên máy chủ của họ. Tuy nhiên, nếu Daemon SSH ở trạng thái Không hoạt động, bạn nên liên hệ với nhà cung cấp dịch vụ lưu trữ để giải quyết vấn đề này.
Bạn có thể xem trạng thái Daemon SSH của mình với lệnh sau:
sudo service ssh status
Nếu bạn quản lý máy chủ chuyên dụng hoặc máy chủ cục bộ, bạn có thể cài đặt thủ công Daemon SSH.
Tường lửa chặn cổng SSH
Nguyên nhân: Lỗi SSH Connection Refused xảy ra cũng có thể đến từ việc hạn chế của tường lửa, chặn cách kết nối SSH đến. Hệ điều hành sử dụng các cổng đển quản lý dữ liệu và lưu lượng truy cập cho các dịch vụ.
Cách khắc phục:
Để sửa lỗi đến từ các hạn chế của tường lửa, bạn cần áp dụng các quy tắc tường lửa cụ thể để cho phép các yêu cầu kết nối SSH.
Để xác định cổng SSH được máy chủ sử dụng, bạn có thể sử dụng lệnh sau trên thiết bị đầu cuối của máy chủ:
$ grep Port /etc/ssh/ssh_config$ grep Port /etc/ssh/sshd_config
Lệnh này sẽ hiển thị cổng SSH đã được cấu hình trên máy chủ của bạn.
Để kiểm tra xem tường lửa có chặn cổng SSH không, bạn có thể sử dụng công cụ InfoByIp. Nhập IP của tên miền hoặc máy chủ của bạn, đảm bảo rằng cổng 22 được liệt kê cho SSH và nhấp Kiểm tra.
Nếu kết nối thành công, có nghĩa là sự cố này không phải đến từ cổng mà liên quan đến máy tính hoặc kết nối mạng. Lúc này bạn nên xem lại các quy tắc tường lửa hoặc liên hệ với quản trị viên hệ thống.
Để cho phép kết nối SSH qua tường lửa, bạn có thể sử dụng công cụ UFW. Thực hiện như sau:
- Mở Terminal và nhập lệnh sau: sudo ufw allow ssh
Lệnh này yêu cầu UFW cho phép kết nối SSH đến cổng SSH mặc định (cổng 22). Nếu cổng SSH khác, hãy thay ssh bằng số cổng thích hợp.
Sau khi chạy lệnh, tường lửa sẽ được cập nhật để cho phép các kết nối SSH đến.
Thông tin đăng nhập SSH hoặc cấu hình cổng không đúng
Nguyên nhân: Lỗi SSH Connection refused cũng có thể do bạn nhập thông tin đăng nhập SSH hoặc cổng SSH khiến máy chủ từ chối kết nối.
Cách Khắc phục:
Các thông tin bao gồm như tên máy chủ, tên người dùng, mật khẩu, cổng cần đảm bảo tính chính xác. Trong đó:
- Tên máy chủ: Địa chỉ của máy chủ có thể là IP hoặc tên máy chủ, tên miền
- Tên người dùng: Chính là tên người dùng được liên kết với máy chủ SSH trên web hoặc máy chủ
- Mật khẩu: là cụm mật khẩu của khóa SSH riêng tư của bạn
- Cổng: Mặc định cho kết nối SSH là cổng 22. Tuy nhiên để tăng cường bảo mật, nhiều nhà cung cấp sẽ lựa chọn các cổng tùy chỉnh khác nhau.
Dịch vụ SSH ngừng hoạt động
Nguyên nhân: Lỗi “Connection refused” của SSH có thể đến từ việc dịch vụ SSH bị ngừng hoạt động trên máy chủ. Điều này có thể xảy ra khi máy chủ của bạn bị quá tải do không đủ tài nguyên hoặc lưu lượng truy cập bị tăng đột biến. Điều này có thể dẫn đến việc SSH bị vô hiệu hóa.
Cách khắc phục:
Để khắc phục lỗi SSH Connection refused do dịch vụ SSH ngừng hoạt động, bạn có thể tiến hành khởi động lại dịch vụ SSH với lệnh sau:
sudo service ssh restart
Lệnh này sẽ khởi động lại dịch vụ SSH để giúp bạn giải quyết các vấn đề tiềm ẩn và thiết lập kết nối SSH thành công.
Tại sao việc sửa lỗi SSH “Kết nối bị từ chối” lại quan trọng?
Việc khắc phục lỗi “Connection refused” của SSH là việc làm quan trọng bởi:
- Khôi phục quyền truy cập vào máy chủ, để thực hiện các công việc cần thiết để quản lý máy chủ, thực hiện các tác vụ trong quản trị và khắc phục sự cố.
- Việc sửa lỗi SSH giúp bạn hợp lý hóa quy trình xử lý sự cố và giải quyết các sự cố khác hiệu quả hơn
- Sửa lỗi SSH để kết nối vào máy chủ từ xa giúp bạn đảm bảo môi trường an toàn cho máy chủ của bạn.
- Sửa lỗi SSH giúp bạn có thể tiếp tục sử dụng SSH với các chức năng, nâng cao năng suất và quy trình phát triển của bạn.
- Sửa lỗi kết nối SSH giúp bạn giải quyết kịp thời các vấn đề, ngăn ngừa mất mát dữ liệu tiềm ẩn và đảm bảo tính khả dụng liên tục của máy chủ và dịch vụ.
Lời kết
Trên đây, LANIT đã chia sẻ đến bạn các nguyên nhân cũng như cách khắc phục lỗi SSH “Connection refused”. Hy vọng rằng, với những cách khắc phục trên giúp bạn kết nối SSH trên máy chủ từ xa một cách nhanh chóng và an toàn để thực hiện các công việc quản trị máy chủ của mình. Ngoài ra, nếu bạn cần tư vấn thêm về dịch vụ máy chủ giá rẻ, dịch vụ VPS, liên hệ ngay LANIT nhé!