Setup SSH Passwordless Login trong Linux [3 bước đơn giản]

SSH (Secure SHELL) là một giao thức mạng mã nguồn mở và đáng tin cậy được sử dụng để đăng nhập vào máy chủ từ xa để thực hiện các lệnh và chương trình.

Nó cũng được sử dụng để truyền tệp từ một máy tính sang máy tính khác qua mạng bằng lệnh SCP và lệnh rsync.

Trong bài viết này, chúng tôi sẽ chỉ cho bạn cách thiết lập đăng nhập không cần mật khẩu trên các phiên bản Linux dựa trên RHEL như CentOSFedoraRocky Linux & AlmaLinux, và các phiên bản dựa trên Debian như Ubuntu & Mint bằng cách sử dụng các khóa ssh để kết nối với các máy chủ Linux từ xa mà không cần nhập mật khẩu.

Sử dụng đăng nhập không cần mật khẩu với khóa SSH sẽ tăng sự tin tưởng giữa hai máy chủ Linux để đồng bộ hoặc truyền tệp tin dễ dàng hơn.

Môi trường thiết lập của tôi
SSH Client : 192.168.0.12 ( Fedora 36 )
SSH Remote Host : 192.168.0.11 ( CentOS 8 )

Nếu bạn đang làm việc với nhiều máy chủ từ xa Linux, thì đăng nhập không cần mật khẩu SSH là một trong những cách tốt nhất để tự động hóa các tác vụ như sao lưu tự động với các tập lệnh, đồng bộ hóa tệp tin bằng lệnh SCP và thực thi lệnh từ xa.

Trong ví dụ này, chúng ta sẽ thiết lập đăng nhập tự động không cần mật khẩu SSH từ máy chủ 192.168.0.12 dưới tên người dùng tecmint đến máy chủ 192.168.0.11 dưới tên người dùng sheena.

Bước 1: Tạo khóa xác thực SSH-Keygen trên - (192.168.0.12)

Đầu tiên đăng nhập vào máy chủ 192.168.0.12 dưới tên người dùng tecmint và tạo một cặp khóa công khai bằng cách sử dụng lệnh sau.

$ ssh-keygen -t rsa

Generating public/private rsa key pair.
Enter file in which to save the key (/home/tecmint/.ssh/id_rsa): [Press enter key]
Created directory '/home/tecmint/.ssh'.
Enter passphrase (empty for no passphrase): [Press enter key]
Enter same passphrase again: [Press enter key]
Your identification has been saved in /home/tecmint/.ssh/id_rsa.
Your public key has been saved in /home/tecmint/.ssh/id_rsa.pub.
The key fingerprint is:
5f:ad:40:00:8a:d1:9b:99:b3:b0:f8:08:99:c3:ed:d3 tecmint@tecmint.com
The key's randomart image is:
+--[ RSA 2048]----+
|        ..oooE.++|
|         o. o.o  |
|          ..   . |
|         o  . . o|
|        S .  . + |
|       . .    . o|
|      . o o    ..|
|       + +       |
|        +.       |
+-----------------+

Create SSH RSA Key

Bước 2: Tải lên khóa SSH lên - 192.168.0.11

Sử dụng SSH từ máy chủ 192.168.0.12 và tải lên khóa công khai mới tạo ra (id_rsa.pub) lên máy chủ 192.168.0.11 trong thư mục .ssh của người dùng sheena dưới tên tệp là authorized_keys.

$ ssh-copy-id sheena@192.168.0.11

Đảm bảo rằng đặt đúng quyền truy cập cho thư mục ~/.ssh và tệp ~/.ssh/authorized_keys trên máy chủ từ xa.

$ ssh sheena@192.168.0.11 "chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys"

Bước 3: Vô hiệu hóa xác thực mật khẩu (Tùy chọn)

Để tăng cường bảo mật, bạn có thể vô hiệu hóa xác thực mật khẩu trên máy chủ từ xa và chỉ cho phép xác thực khóa SSH. Để làm điều này, mở tệp cấu hình máy chủ SSH trên máy chủ từ xa:

$ sudo nano /etc/ssh/sshd_config
OR
$ sudo vi /etc/ssh/sshd_config

Tìm dòng chứa PasswordAuthentication và thiết lập giá trị là no.

PasswordAuthentication no

Lưu tệp và khởi động lại dịch vụ SSH.

$ sudo systemctl restart sshd

Bước 4: Kiểm tra đăng nhập không cần mật khẩu SSH từ 192.168.0.12

Từ bây giờ trở đi, bạn có thể đăng nhập vào 192.168.0.11 với tên người dùng sheena từ máy chủ 192.168.0.12 với tên người dùng tecmint mà không cần mật khẩu.

$ ssh sheena@192.168.0.11

SSH Remote Passwordless Login

Trong bài viết này, bạn đã tìm hiểu cách thiết lập đăng nhập không cần mật khẩu SSH bằng một khóa ssh. Mong rằng quá trình đó là đơn giản. Nếu bạn có bất kỳ câu hỏi nào, xin vui lòng đăng bài trong phần bình luận bên dưới.