SSH là gì?

SSH (viết tắt của từ Secure Socket Shell) là một giao thức mạng được sử dụng để đăng nhập vào một máy tính từ xa. Chẳng hạn bạn có một máy tính ở nhà cài Linux có cài SSH thì bạn có thể đăng nhập vào máy tính đó từ xa để quản lý dữ liệu. Các dữ liệu mà bạn gửi đi hoặc nhận thông qua giao thức SSH sẽ đều được mã hóa lại để bảo mật thông tin an toàn hơn.

SSH trong máy chủ Linux

Khi bạn mua một VPS Linux hoặc một máy chủ vật lý cài Linux thì bạn sẽ có thông tin đăng nhập thông qua giao thức SSH gồm:

  • IP máy chủ
  • Tên người dùng đăng nhập, đa phần là root
  • Mật khẩu của người dùng, nếu tên người dùng của bạn là root thì mật khẩu này được gọi là mật khẩu root.
  • Cổng giao tiếp: 22, mặc định SSH sử dụng cổng 22.

Với các thông tin đó, bạn đã có thể đăng nhập vào máy chủ Linux của bạn rồi.

Cách đăng nhập vào máy chủ Linux thông qua SSH

1. Đăng nhập từ Windows

Sử dụng PuTTY:

  • Tải PuTTY từ trang chủ putty.org
  • Mở PuTTY, nhập IP server vào ô "Host Name"
  • Giữ nguyên Port 22 (hoặc thay đổi nếu server dùng port khác)
  • Click "Open" để kết nối
  • Nhập username khi được yêu cầu
  • Nhập password (không hiển thị khi gõ)

Dòng khoanh màu đỏ là bạn sẽ điền địa chỉ IP của máy chủ, port mặc định là 22, bạn chỉ sửa nếu bạn biết chắc máy chủ của mình sử dụng một cổng mạng khác.

chrome XrJkP6I944

Lưu ý: khi nhập trong cửa sổ thì mật khẩu không hiển thị. Bạn chỉ cần nhập đúng và đủ mật khẩu rồi bấm Enter để kết nối.

Ngoài ra để thuận tiện các bạn có thể copy mật khẩu sau đó click chuột phải trên màn hình PuTTY để paste mật khẩu đó vào, sau đó bấm Enter như bình thường.

z2536030741416 258476dd03c99c83810e1c25c7e781cd

Sử dụng Windows Terminal hoặc PowerShell: Windows 10 trở lên đã tích hợp sẵn OpenSSH. Mở Terminal hoặc PowerShell và gõ:

ssh username@ip_server

Ví dụ: ssh [email protected]

2. Đăng nhập từ Linux/macOS

Nếu bạn sử dụng các hệ điều hành Linux hoặc macOS thì trên máy đã có sẵn công cụ Terminal có thể chạy những lệnh Unix. Tại Terminal, bạn sử dụng lệnh sau để đăng nhập:

ssh [email protected]

Trong đó, root là tên người dùng trên máy chủ và 123.45.67.8 là địa chỉ IP của máy chủ. Trường hợp bạn dùng một cổng mạng khác cổng 22 thì sẽ cần khai báo số cổng với tham số -p. Nếu bạn sử dụng SSH Key có thể tham khảo bài viết sau.

ssh [email protected] -p 2222

3. Đăng nhập bằng SSH Key

SSH Key an toàn hơn password và không cần nhập mật khẩu mỗi lần đăng nhập.

Tạo SSH Key:

ssh-keygen -t rsa -b 4096

Copy public key lên server:

ssh-copy-id username@ip_server

Đăng nhập với SSH Key:

ssh -i /path/to/private_key username@ip_server

Các lệnh SSH thường dùng

  • Đăng nhập với user cụ thể: ssh user@ip_server
  • Chỉ định port: ssh -p 2222 user@ip_server
  • Sử dụng key file: ssh -i keyfile.pem user@ip_server
  • Bật chế độ verbose để debug: ssh -v user@ip_server
  • Chuyển tiếp cổng: ssh -L 8080:localhost:80 user@ip_server

Xử lý lỗi thường gặp

Permission denied

  • Kiểm tra lại username và password
  • Đảm bảo account không bị khóa
  • Kiểm tra file /etc/ssh/sshd_config trên server

Connection refused

  • Kiểm tra IP server có đúng không
  • Kiểm tra firewall có chặn port SSH không
  • Đảm bảo SSH service đang chạy trên server

Host key verification failed

  • Xóa key cũ: ssh-keygen -R ip_server
  • Kết nối lại và chấp nhận key mới

Connection timeout

  • Kiểm tra kết nối mạng
  • Kiểm tra firewall của ISP
  • Thử dùng VPN nếu bị chặn

Bảo mật SSH

  1. Đổi port mặc định: Chỉnh sửa /etc/ssh/sshd_config, thay đổi Port 22 thành số khác
  2. Tắt đăng nhập root: Đặt PermitRootLogin no trong sshd_config
  3. Sử dụng SSH Key thay vì password: Đặt PasswordAuthentication no
  4. Giới hạn IP được phép kết nối: Sử dụng firewall hoặc TCP Wrapper
  5. Cài đặt Fail2Ban: Tự động block IP sau nhiều lần đăng nhập sai
  6. Sử dụng SSH Key passphrase: Thêm lớp bảo mật cho private key

Kết luận

SSH là công cụ không thể thiếu khi quản trị VPS Linux. Việc thành thạo các thao tác đăng nhập và bảo mật SSH sẽ giúp bạn làm việc hiệu quả và an toàn hơn. Luôn nhớ áp dụng các biện pháp bảo mật cơ bản như sử dụng SSH Key, đổi port mặc định, và cập nhật thường xuyên để bảo vệ server khỏi các mối đe dọa.