Cách thiết lập SSH Keys

Tác giả Network Engineer, T.Mười 21, 2021, 10:33:43 SÁNG

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 1 Khách đang xem chủ đề.

Cách thiết lập SSH Keys


Giao thức Secure Shell (hoặc SSH) là một giao thức mạng mã hóa bảo mật cho phép người dùng truy cập một cách an toàn vào máy tính từ xa qua một mạng không an toàn.

Mặc dù SSH hỗ trợ xác thực dựa trên mật khẩu, nhưng bạn nên sử dụng khóa SSH để thay thế. Khóa SSH là một phương pháp đăng nhập vào máy chủ SSH an toàn hơn, vì chúng không dễ bị tấn công bởi các cuộc tấn công hack mật khẩu brute-force thông thường.

Việc tạo cặp khóa SSH sẽ tạo ra hai chuỗi ký tự dài: khóa công khai và khóa riêng tư. Bạn có thể đặt khóa công khai trên bất kỳ máy chủ nào, sau đó kết nối với máy chủ bằng ứng dụng khách SSH có quyền truy cập vào khóa riêng tư.

Khi khóa công khai và khóa riêng tư khớp với nhau, máy chủ SSH cấp quyền truy cập mà không cần mật khẩu. Bạn có thể tăng cường bảo mật cho cặp khóa của mình hơn nữa bằng cách bảo vệ khóa riêng tư bằng cụm mật khẩu tùy chọn (nhưng rất được khuyến khích).

1. Tạo cặp khóa.

Bước đầu tiên là tạo một cặp khóa trên máy khách. Đây có thể là máy tính cục bộ của bạn. Nhập lệnh sau vào dòng lệnh cục bộ của bạn:

Mã nguồn [Chọn]
# ssh-keygen -t ed25519
Mã nguồn [Chọn]
Generating public/private ed25519 key pair.
Bạn sẽ thấy xác nhận rằng quá trình tạo khóa đã bắt đầu và bạn sẽ được nhắc về một số thông tin mà chúng ta sẽ thảo luận trong bước tiếp theo.

Lưu ý: nếu bạn đang sử dụng hệ thống cũ hơn không hỗ trợ tạo cặp khóa ed25519 hoặc máy chủ bạn đang kết nối không hỗ trợ chúng, bạn nên tạo cặp khóa mạnh rsa để thay thế:

Mã nguồn [Chọn]
# ssh-keygen -t rsa -b 4096
Thao tác này sẽ tạo khóa rsa với 4096 bit.

2. Chỉ định nơi lưu khóa.

Lời nhắc đầu tiên từ lệnh ssh-keygen sẽ hỏi bạn nơi lưu các khóa:

Mã nguồn [Chọn]
Enter file in which to save the key (/home/sammy/.ssh/id_ed25519):
Bạn có thể nhấn ENTER vào đây để lưu các tập tin vào vị trí mặc định trong thư mục .ssh của thư mục chính của bạn.

Ngoài ra, bạn có thể chọn một tên hoặc vị trí tập tin khác bằng cách nhập nó sau lời nhắc và nhấn ENTER.

3. Tạo cụm mật khẩu.

Lời nhắc thứ hai và cuối cùng từ ssh-keygen sẽ yêu cầu bạn nhập cụm mật khẩu:
       
Mã nguồn [Chọn]
Enter passphrase (empty for no passphrase):
Việc bạn có muốn sử dụng cụm mật khẩu hay không là tùy thuộc vào bạn, nhưng nó được khuyến khích mạnh mẽ: tính bảo mật của cặp khóa, bất kể phương án mã hóa, vẫn phụ thuộc vào thực tế là không ai khác có thể truy cập được.

Nếu khóa riêng tư không có cụm mật khẩu rơi vào tay người dùng trái phép, họ sẽ có thể đăng nhập vào bất kỳ máy chủ nào mà bạn đã cấu hình bằng khóa công khai được liên kết.

Nhược điểm chính của việc có một cụm mật khẩu có thể được giảm thiểu bằng cách sử dụng một dịch vụ ssh-agent, dịch vụ này sẽ tạm thời lưu trữ khóa đã mở khóa của bạn và giúp máy khách SSH có thể truy cập được. Nhiều tác nhân trong số này được tích hợp với chuỗi khóa gốc của hệ điều hành của bạn, giúp quá trình mở khóa trở nên liền mạch hơn.

Tóm lại, toàn bộ quá trình tạo khóa trông như thế này:

Mã nguồn [Chọn]
# ssh-keygen -t ed25519
Mã nguồn [Chọn]
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/vietnetwork/.ssh/id_ed25519):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/vietnetwork/.ssh/id_ed25519
Your public key has been saved in /home/vietnetwork/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:EGx5HEXz7EqKigIxHHWKpCZItSj1Dy9Dqc5cYae+1zc vietnetwork@hostname
The key's randomart image is:
+--[ED25519 256]--+
| o+o o.o.++      |
|=oo.+.+.o  +     |
|*+.oB.o.    o    |
|*. + B .   .     |
| o. = o S . .    |
|.+ o o . o .     |
|. + . ... .      |
|.  . o. . E      |
| .. o.   . .     |
+----[SHA256]-----+


Khóa công khai hiện được đặt tại /home/vietnetwork/.ssh/id_ed25519. Khóa cá nhân hiện được đặt tại pub/home/vietnetwork/.ssh/id_ed25519.

4. Sao chép khóa công khai vào máy chủ của bạn.

Khi cặp khóa được tạo, đã đến lúc đặt khóa công khai trên máy chủ mà bạn muốn kết nối.

Bạn có thể sao chép khóa công khai vào tập tin authorized_keys của máy chủ bằng lệnh ssh-copy-id. Đảm bảo thay thế tên người dùng và địa chỉ mẫu:

Mã nguồn [Chọn]
# ssh-copy-id vietnetwork@your_server_address
Sau khi lệnh hoàn tất, bạn sẽ có thể đăng nhập vào máy chủ thông qua SSH mà không bị nhắc nhập mật khẩu. Tuy nhiên, nếu bạn đặt cụm mật khẩu khi tạo khóa SSH, bạn sẽ được yêu cầu nhập cụm mật khẩu tại thời điểm đó. Đây là máy khách SSH cục bộ của bạn yêu cầu bạn giải mã khóa cá nhân, nó không phải là máy chủ từ xa yêu cầu mật khẩu.

5. Tắt xác thực SSH dựa trên mật khẩu (Tùy chọn)

Khi bạn đã sao chép khóa SSH của mình vào máy chủ, bạn có thể muốn cấm hoàn toàn việc đăng nhập bằng mật khẩu bằng cách cấu hình máy chủ SSH để tắt xác thực dựa trên mật khẩu.

Cảnh báo: trước khi bạn tắt xác thực dựa trên mật khẩu, hãy chắc chắn rằng bạn có thể đăng nhập thành công vào máy chủ bằng SSH keys của mình và không có người dùng nào khác trên máy chủ sử dụng mật khẩu để đăng nhập.

Để tắt xác thực SSH dựa trên mật khẩu, hãy mở tập tin cấu hình SSH. Nó thường được tìm thấy ở vị trí sau:

Mã nguồn [Chọn]
# sudo nano /etc/ssh/sshd_config
Lệnh này sẽ mở tập tin trong trình soạn thảo văn bản nano. Tìm dòng trong tập tin bao gồm PasswordAuthentication (hoặc tạo dòng nếu nó không tồn tại), đảm bảo rằng nó không được tắt đi bằng dấu # ở đầu dòng và thay đổi nó thành no:

Mã nguồn [Chọn]
PasswordAuthentication no
Lưu và đóng tập tin khi bạn hoàn tất. Trong nano, sử dụng CTRL+O để lưu, nhấn ENTER để xác nhận tên tập tin, sau đó CTRL+X để thoát.

Khởi động lại dịch vụ SSHD để những thay đổi này có hiệu lực:

Mã nguồn [Chọn]
# sudo systemctl reload sshd
Trước khi thoát phiên SSH hiện tại của bạn, hãy thực hiện kết nối thử nghiệm trong một cửa sổ dòng lệnh Terminal khác để xác minh rằng bạn vẫn có thể kết nối.

Trong hướng dẫn này, chúng ta đã tạo một cặp khóa SSH, sao chép khóa công khai của chúng tôi vào máy chủ và (tùy chọn) vô hiệu hóa hoàn toàn xác thực dựa trên mật khẩu.

Để biết thêm thông tin về SSH và dịch vụ SSH, bao gồm cách thiết lập xác thực đa yếu tố, vui lòng đọc các hướng dẫn liên quan của mình.