Hướng dẫn Cấu hình SSH Config với IP

SSH (Secure Shell) là một giao thức mạng an toàn được sử dụng để thiết lập kết nối bảo mật giữa hai thiết bị, giúp người dùng truy cập và quản lý từ xa các máy chủ và hệ thống. Trong bài viết này, chúng ta sẽ tìm hiểu cách cấu hình SSH thông qua tệp cấu hình SSH, thường được gọi là ssh_config, với việc sử dụng địa chỉ IP.

Hướng dẫn Cấu hình SSH Config với IP

Bước 1: Mở tệp ssh_config hoặc config

Trước hết, chúng ta cần mở tệp ssh_config trên máy tính của bạn. Tệp này thường nằm trong thư mục /etc/ssh/ hoặc ~/.ssh/. Bạn có thể sử dụng trình soạn thảo văn bản như nano hoặc vi để mở tệp này.

nano ~/.ssh/config

hoặc

sudo nano /etc/ssh/ssh_config

Nếu bạn chỉ thấy tệp config mà không tìm thấy ssh_config, có thể là do tên tệp cấu hình SSH mặc định đã thay đổi trên hệ điều hành của bạn. Mặc định, tệp cấu hình SSH thường có thể là config hoặc ssh_config, tùy thuộc vào hệ điều hành.

Dưới đây là một số tùy chọn mà bạn có thể kiểm tra:

Trên nhiều hệ điều hành, tệp cấu hình SSH được đặt trong thư mục người dùng của bạn. Bạn có thể kiểm tra tệp config trong thư mục ~/.ssh/:

nano ~/.ssh/config

Trên một số hệ điều hành, tệp cấu hình có thể được đặt trong thư mục /etc/ssh/:

sudo nano /etc/ssh/ssh_config

Bạn cũng có thể sử dụng lệnh find để tìm kiếm tất cả tệp cấu hình SSH trên hệ thống:

sudo find / -name "ssh_config" 2>/dev/null

Lệnh này sẽ hiển thị đường dẫn đến bất kỳ tệp ssh_config nào trên hệ thống của bạn.

Lưu ý:

  • Đối với hệ điều hành Linux và macOS, tệp cấu hình thường được đặt trong thư mục người dùng (~/.ssh/config) hoặc trong thư mục /etc/ssh/ (/etc/ssh/ssh_config).

  • Đối với Windows, tệp cấu hình có thể nằm trong %USERPROFILE%\.ssh\config hoặc %ProgramData%\ssh\ssh_config.

Hãy kiểm tra các đường dẫn trên và điều chỉnh theo hệ điều hành bạn đang sử dụng.

Bước 2: Thêm cấu hình mới

Khi tệp ssh_config được mở, bạn có thể thêm các cấu hình mới cho các máy chủ cụ thể hoặc mạng IP cụ thể. Dưới đây là một ví dụ:

Host server1
    HostName 192.168.1.100
    User your_username
    IdentityFile 
    Port 22
    CheckHostIP no
    PasswordAuthentication no
    UserKnownHostsFile /dev/null
    StrictHostKeyChecking no
    LogLevel INFO
    Compression yes

# Equivalent to "ssh -i  @"

Trong đoạn mã trên:

  • Host: Tên đặc biệt để xác định máy chủ. Bạn có thể thay đổi thành tên mong muốn.
  • HostName: Địa chỉ IP hoặc tên miền của máy chủ.
  • User: Tên người dùng bạn sẽ sử dụng để đăng nhập.
  • Port: Cổng SSH mà máy chủ lắng nghe. Thông thường là cổng 22.
  • PasswordAuthentication: Xác định liệu việc sử dụng xác thực mật khẩu (password) sẽ được phép hay không. Các giá trị có thể là yes hoặc no.
    • Yes: Cho phép xác thực mật khẩu. SSH sẽ yêu cầu mật khẩu khi kết nối
    • No: Tắt xác thực mật khẩu và yêu cầu sử dụng phương thức khác như khóa SSH. Chỉ các phương thức xác thực khác như khóa công khai (public key authentication) sẽ được chấp nhận.
  • UserKnownHostsFile: Định rõ đường dẫn đến tệp chứa danh sách các máy chủ đã biết (known hosts). Đường dẫn tuyệt đối hoặc tương đối đến tệp. E.g: UserKnownHostsFile ~/.ssh/known_hosts
  • StrictHostKeyChecking: Xác định liệu máy chủ phải được kiểm tra khóa chính xác hay không. Quy định cách SSH xử lý khi phát hiện các thay đổi về khóa host. Giá trị có thể là yes, no, hoặc ask.
    • Yes: Kích hoạt kiểm tra chính xác khóa (mặc định). SSH sẽ từ chối kết nối nếu có bất kỳ sự thay đổi nào về khóa host
    • No: SSH sẽ tự động chấp nhận bất kỳ khóa host nào mà nó chưa biết đến.
    • Ask: SSH sẽ yêu cầu xác nhận từ người dùng khi có thay đổi.
  • LogLevel: Xác định mức độ chi tiết của các thông điệp log của SSH. Bạn có thể sử dụng giá trị từ 0 đến 3 để chỉ định mức độ chi tiết mong muốn.
    • LogLevel QUIET (0): Khi bạn đặt LogLevel là QUIET, SSH sẽ chỉ log các cảnh báo và lỗi.
    • LogLevel FATAL (1): LogLevel FATAL sẽ log các thông điệp cảnh báo, lỗi và thông báo quan trọng.
    • LogLevel ERROR (2): ERROR sẽ log cảnh báo, lỗi và thông điệp thông thường.
    • LogLevel INFO (3): INFO là mức log chi tiết cao nhất, log tất cả các thông điệp, kể cả thông điệp thông thường.
  • Compression: Quy định việc sử dụng nén dữ liệu trong quá trình truyền tải thông qua SSH. Nén dữ liệu có thể giảm băng thông mạng và tăng tốc độ truyền tải, nhưng có thể tăng độ trễ trên các máy tính có hiệu suất thấp. Các giá trị có thể là yes hoặc no.
    • Yes: Bật tính năng nén dữ liệu. Mặc định là không bật.
    • No: Tắt tính năng nén dữ liệu.

Những tham số trên giúp điều chỉnh cách SSH tương tác với máy chủ và đảm bảo an toàn trong quá trình kết nối. Lựa chọn giữa mật khẩu và khóa công khai, cũng như xác nhận khóa host, là quan trọng để tăng cường bảo mật hệ thống.

Bạn có thể thêm nhiều máy chủ khác bằng cách sao chép và điều chỉnh cấu hình tương ứng.

Bước 3: Lưu và thoát

Sau khi thêm các cấu hình mới, bạn có thể lưu và thoát khỏi trình soạn thảo văn bản. Trong trường hợp của nano, bạn có thể nhấn Ctrl + X, sau đó nhấn Y để xác nhận lưu, và cuối cùng nhấn Enter. phu.lt hay dùng nano

nano ~/.ssh/config
Phím tắt:
    Ctrl + O: Lưu file
    Ctrl + X: Thoát file

Bước 4: Kết nối sử dụng SSH

Bây giờ bạn có thể kết nối đến máy chủ chỉ bằng cách sử dụng tên bạn đã đặt trong cấu hình:

ssh server1

Điều này sẽ tự động sử dụng cấu hình bạn đã đặt trong ssh_config và thực hiện kết nối SSH đến máy chủ với địa chỉ IP tương ứng.

Với hướng dẫn trên, bạn đã cấu hình SSH config để kết nối với máy chủ sử dụng địa chỉ IP một cách thuận tiện. Hãy nhớ luôn bảo mật thông tin đăng nhập và duy trì cập nhật bảo mật để đảm bảo an toàn cho hệ thống của bạn.