[SSH] Tìm hiểu sự khác nhau giữa 2 file config “ssh_config” và “sshd_config” trên Linux

Tìm hiểu sự khác nhau giữa 2 file config "ssh_config" và "sshd_config" trên Linux.

Khi mà bạn làm việc trên các hệ thống Linux, gần như bạn sẽ phải sử dụng chương trình SSH mỗi ngày để làm kênh kết nối đến hệ thống nhằm thao tác các hoạt động mong muốn. Bạn sẽ phải cấu hình cho SSH Client hoặc SSH Dịch vụ phía Server để có những tinh chỉnh phù hợp nhất.

Trên các phiên bản OS Linux khác nhau như Debian, Redhat,.. thì thường có 2 file cấu hình liên quan đến hoạt động SSH đó là : ssh_configsshd_config . Thế thì ở bài viết này mình chỉ đơn giản nói về sự khác biệt giữa 2 file cấu hình này :

1. ssh_config

là file cấu hình dành cho phía SSH client trên hệ thống máy tính bạn đang hoạt động, tức là SSH từ 1 máy Linux đến 1 máy Linux khác. Giả sử bạn có thể cấu hình các tinh chỉnh như : port SSH mặc định khi kết nối, protocol phiên bản 1 hay 2, thuật toán mã hoá,…

Ví dụ cấu hình

# nano /etc/ssh/ssh_config
Host *
ForwardAgent no
ForwardX11 no
RhostsAuthentication no
RhostsRSAAuthentication no
RSAAuthentication yes
PasswordAuthentication yes
FallBackToRsh no
UseRsh no
BatchMode no
CheckHostIP yes
StrictHostKeyChecking no
IdentityFile ~/.ssh/identity
Port 22
Cipher blowfish
EscapeChar ~

 
2. sshd_config

là file cấu hình dành cho dịch vụ SSH (sshd daemon, chương trình lắng nghe các truy cập đến port SSH) trên hệ thống. Có thể nói là nếu một người dùng nào kết nối đến dịch vụ SSHd trên server thì phải tuân thủ theo các chính sách cấu hình của phía server, với các thông tin thông số trao đổi giữa client và server phải khớp với cấu hình trong file sshd_config.
Giả sử như đó là các thông số : port ssh lắng nghe, version SSH protocol được phép trao đổi, kết nối SSH Private/public key hay mật khẩu thường,..

Ví dụ cấu hình

# nano /etc/ssh/sshd_config
	Port 22
	ListenAddress 192.168.1.1
	HostKey /etc/ssh/ssh_host_key
	ServerKeyBits 1024
	LoginGraceTime 600
	KeyRegenerationInterval 3600
	PermitRootLogin no
	IgnoreRhosts yes
	IgnoreUserKnownHosts yes
	StrictModes yes
	X11Forwarding no
	PrintMotd yes
	SyslogFacility AUTH
	LogLevel INFO
	RhostsAuthentication no
	RhostsRSAAuthentication no
	RSAAuthentication yes
	PasswordAuthentication yes
	PermitEmptyPasswords no
	AllowUsers admin


3. Trường hợp ví dụ tình huống

Giả sử ở phía ssh client, trong file “ssh_config” được cấu hình port mặc định khi kết nối là 1234, tức thông thường mặc định không tinh chỉnh :

# ssh root@192.168.1.1

-> thì chương trình ssh client, sẽ tự động đi kết nối đến Port 22 phía 192.168.1.1 . Nay sau khi được cấu hình “Port 1234“, trong ssh_config thì chương trình sẽ không tự động kết nối đến port 22 nữa mà nó sẽ kết nối đến port 1234 ở host 192.168.1.1.

Bây giờ phía host 192.168.1.1 , lại cấu hình trong dịch vụ SSH (sshd_config) là nó chỉ lắng nghe kết nối SSH đến ở port 4444 (Port 4444), thì tất cả các client nếu muốn SSH được đến host 192.168.1.1 thì phải thay đổi thông tin port truy cập là 4444. Như vậy trong trường hợp này, phía SSH Client sẽ có 2 cách là :
+ Chỉnh trong file /etc/ssh/ssh_config , thay đổi giá trị “Port 22” => “Port 4444“. Lúc này ssh client sẽ tự động biết đi kết nối đến Port 4444.
+ Chỉ định trực tiếp port kết nối phía remote host 192.168.1.1 bằng giá trị biến đi kèm của chương trình “ssh“.

# ssh -p 4444 root@192.168.1.1

 
Nhìn chung sự khác biệt đơn giản nó sẽ như vậy.

Previous article[Linux] Hướng dẫn cài đặt công cụ truyền tải dữ liệu “rsync” trên Linux
Next article[cPanel] Hướng dẫn thay đổi thư mục FTP của account chính cPanel User bằng command-line
Bạn đang theo dõi website "https://cuongquach.com/" nơi lưu trữ những kiến thức tổng hợp và chia sẻ cá nhân về Quản Trị Hệ Thống Dịch Vụ & Mạng, được xây dựng lại dưới nền tảng kinh nghiệm của bản thân mình, Quách Chí Cường. Hy vọng bạn sẽ thích nơi này !