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.
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ặcno
.- 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.
- 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
- 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ặcask
.- 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.