Mặc dù có vài cách khác nhau để đăng nhập vào một máy chủ SSH, trong hướng dẫn này, chúng ta sẽ tập trung vào việc thiết lập SSH Key Linux. SSH keys cung cấp một phương thức đăng nhập vô cùng an toàn vào máy chủ của bạn. Vì lý do này, đây là phương pháp mà chúng tôi khuyến nghị cho tất cả người dùng.
SSH, hay secure shell, là một giao thức mã hóa được sử dụng để quản trị và giao tiếp với các máy chủ. Khi làm việc với một máy chủ Linux, bạn có thể thường dành phần lớn thời gian của mình trong một phiên terminal kết nối với máy chủ qua SSH.
Đơn giản hóa việc triển khai ứng dụng lên máy chủ với DataOnline App Platform. Triển khai trực tiếp từ GitHub chỉ trong vài phút.
SSH Keys Hoạt Động Như Thế Nào?
Một máy chủ SSH có thể xác thực khách hàng bằng nhiều phương pháp khác nhau. Phương pháp cơ bản nhất trong số đó là xác thực bằng mật khẩu, dễ sử dụng nhưng không phải là an toàn nhất. Mặc dù mật khẩu được gửi đến máy chủ một cách an toàn, nhưng chúng thường không đủ phức tạp hoặc dài để chống lại các cuộc tấn công liên tục và kiên trì. Sức mạnh xử lý hiện đại kết hợp với các script tự động làm cho việc tấn công brute-force vào một tài khoản bảo vệ bằng mật khẩu trở nên khả thi. Mặc dù có các phương pháp khác để tăng cường bảo mật (như fail2ban, v.v.), SSH keys chứng tỏ là một giải pháp thay thế đáng tin cậy và an toàn.
Cặp SSH key là hai khóa được bảo mật theo thuật toán mật mã, có thể được sử dụng để xác thực một khách hàng đến máy chủ SSH. Mỗi cặp khóa bao gồm một public key và một private key.
- Private key được giữ lại bởi máy khách và nên được giữ bí mật tuyệt đối. Bất kỳ sự xâm phạm nào của private key sẽ cho phép kẻ tấn công đăng nhập vào các máy chủ đã được cấu hình với public key tương ứng mà không cần xác thực bổ sung. Để tăng cường an toàn, khóa có thể được mã hóa trên đĩa với một passphrase.
- Public key tương ứng có thể được chia sẻ tự do mà không gây hậu quả tiêu cực. Public key có thể được sử dụng để mã hóa các thông điệp mà chỉ private key mới có thể giải mã. Tính chất này được sử dụng như một phương thức xác thực bằng cặp khóa.
Public key được tải lên một máy chủ từ xa mà bạn muốn đăng nhập qua SSH. Khóa này được thêm vào một tệp đặc biệt trong tài khoản người dùng mà bạn sẽ đăng nhập, có tên là ~/.ssh/authorized_keys
.
Khi một khách hàng cố gắng xác thực bằng SSH keys, máy chủ có thể kiểm tra xem khách hàng đó có sở hữu private key hay không. Nếu khách hàng có thể chứng minh rằng họ sở hữu private key, một phiên shell sẽ được mở ra hoặc lệnh yêu cầu sẽ được thực thi.
Bước 1 — Tạo SSH Keys Linux
Bước đầu tiên để cấu hình xác thực SSH key cho máy chủ của bạn là tạo một cặp SSH key trên máy tính cục bộ. Để làm điều này, chúng ta có thể sử dụng tiện ích đặc biệt có tên ssh-keygen, được bao gồm trong bộ công cụ OpenSSH tiêu chuẩn. Theo mặc định, lệnh này sẽ tạo ra một cặp RSA key 3072 bit.
Trên máy tính cục bộ của bạn, tạo một cặp SSH key bằng cách gõ:
ssh-keygen
Generating public/private rsa key pair. Enter file in which to save the key (/home/username/.ssh/id_rsa):
Tiện ích sẽ yêu cầu bạn chọn vị trí lưu các khóa sẽ được tạo. Theo mặc định, các khóa sẽ được lưu trong thư mục ~/.ssh trong thư mục home của người dùng. Private key sẽ được đặt tên là id_rsa và public key tương ứng sẽ được gọi là id_rsa.pub.
Thông thường, tốt nhất là nên sử dụng vị trí mặc định ở bước này. Việc này sẽ cho phép SSH client của bạn tự động tìm thấy các SSH key khi cố gắng xác thực. Nếu bạn muốn chọn một đường dẫn không chuẩn, hãy nhập vào ngay bây giờ, nếu không, nhấn ENTER để chấp nhận mặc định.
Nếu bạn đã tạo trước đó một cặp SSH key, bạn có thể thấy thông báo như sau:
/home/username/.ssh/id_rsa already exists. Overwrite (y/n)?
Nếu bạn chọn ghi đè khóa trên đĩa, bạn sẽ không thể xác thực bằng khóa trước đó nữa. Hãy cẩn thận khi chọn yes, vì đây là một quá trình phá hủy không thể đảo ngược.
Created directory '/home/username/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again:
Tiếp theo, bạn sẽ được yêu cầu nhập vào một passphrase cho khóa. Đây là một passphrase tùy chọn có thể được sử dụng để mã hóa tệp private key trên đĩa.
Bạn có thể tự hỏi lợi ích của SSH key là gì nếu bạn vẫn cần nhập passphrase. Một số lợi ích bao gồm:
● Private SSH key (phần có thể được bảo vệ bằng passphrase) không bao giờ bị lộ trên mạng. Passphrase chỉ được sử dụng để giải mã khóa trên máy cục bộ. Điều này có nghĩa là tấn công brute-force dựa trên mạng sẽ không khả thi đối với passphrase.
● Private key được lưu trữ trong một thư mục hạn chế. SSH client sẽ không nhận diện các private key không được lưu trong các thư mục hạn chế. Khóa đó cũng phải có các quyền hạn chế (chỉ cho phép chủ sở hữu đọc và ghi). Điều này có nghĩa là người dùng khác trên hệ thống không thể trộm cắp thông tin.
● Bất kỳ kẻ tấn công nào mong muốn phá vỡ passphrase của private SSH key phải đã có quyền truy cập vào hệ thống. Điều này có nghĩa là họ sẽ đã có quyền truy cập vào tài khoản người dùng của bạn hoặc tài khoản root. Nếu bạn gặp tình trạng này, passphrase có thể ngăn kẻ tấn công đăng nhập ngay vào các máy chủ khác của bạn. Điều này hy vọng sẽ cho bạn thời gian để tạo và triển khai một cặp SSH key mới và loại bỏ quyền truy cập từ khóa bị xâm phạm.
Vì private key không bao giờ bị lộ trên mạng và được bảo vệ thông qua quyền truy cập tệp, tệp này không bao giờ nên bị truy cập bởi bất kỳ ai ngoài bạn (và người dùng root). Passphrase đóng vai trò như một lớp bảo vệ bổ sung trong trường hợp những điều kiện này bị xâm phạm.
Passphrase là một bổ sung tùy chọn. Nếu bạn nhập passphrase, bạn sẽ phải cung cấp nó mỗi khi sử dụng khóa này (trừ khi bạn đang chạy phần mềm SSH agent lưu trữ khóa đã giải mã). Chúng tôi khuyến nghị sử dụng passphrase, nhưng nếu bạn không muốn đặt passphrase, bạn có thể nhấn ENTER để bỏ qua yêu cầu này.
Your identification has been saved in /home/username/.ssh/id_rsa. Your public key has been saved in /home/username/.ssh/id_rsa.pub. The key fingerprint is: SHA256:CAjsV9M/tt5skazroTc1ZRGCBz+kGtYUIPhRvvZJYBs username@hostname The key's randomart image is: +---[RSA 3072]----+ |o ..oo.++o .. | | o o +o.o.+... | |. . + oE.o.o . | | . . oo.B+ .o | | . .=S.+ + | | . o..* | | .+= o | | .=.+ | | .oo+ | +----[SHA256]-----+
Bây giờ, bạn đã có một public key và private key mà bạn có thể sử dụng để xác thực. Bước tiếp theo là đưa public key lên máy chủ của bạn để bạn có thể sử dụng xác thực bằng SSH key để đăng nhập.
Bước 2 — Sao chép Public Key SSH lên Máy chủ của Bạn
Lưu ý: Phiên bản trước của hướng dẫn này có hướng dẫn thêm public key SSH vào tài khoản DataOnline của bạn. Những hướng dẫn đó hiện có thể được tìm thấy trong phần SSH Keys của tài liệu sản phẩm DataOnline.
Có nhiều cách để tải public key của bạn lên máy chủ SSH từ xa. Phương pháp bạn sử dụng phụ thuộc chủ yếu vào các công cụ bạn có và cấu hình hiện tại của bạn.
Các phương pháp dưới đây đều mang lại kết quả cuối cùng giống nhau. Phương pháp đơn giản và tự động nhất được mô tả trước, và các phương pháp tiếp theo đều yêu cầu các bước thủ công bổ sung. Bạn chỉ nên theo các phương pháp này nếu bạn không thể sử dụng các phương pháp trước đó.
Sao chép Public Key của bạn Sử dụng ssh-copy-id
Cách đơn giản nhất để sao chép public key của bạn lên một máy chủ hiện có là sử dụng tiện ích ssh-copy-id. Vì tính đơn giản của nó, phương pháp này được khuyến nghị nếu có sẵn.
Công cụ ssh-copy-id được bao gồm trong các gói OpenSSH trên nhiều bản phân phối, vì vậy có thể bạn đã có nó trên hệ thống cục bộ của mình. Để phương pháp này hoạt động, bạn phải hiện có quyền truy cập SSH dựa trên mật khẩu vào máy chủ của bạn.
Để sử dụng tiện ích này, bạn cần chỉ định máy chủ từ xa mà bạn muốn kết nối, và tài khoản người dùng mà bạn có quyền truy cập SSH dựa trên mật khẩu. Đây là tài khoản nơi public SSH key của bạn sẽ được sao chép.
Cú pháp là:
ssh-copy-id username@remote_host
Bạn có thể thấy một thông báo như sau:
The authenticity of host '203.0.113.1 (203.0.113.1)' can't be established. ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe. Are you sure you want to continue connecting (yes/no)? yes
Điều này có nghĩa là máy tính cục bộ của bạn không nhận diện được máy chủ từ xa. Điều này sẽ xảy ra lần đầu tiên bạn kết nối tới một máy chủ mới. Hãy gõ yes và nhấn ENTER để tiếp tục.
Tiếp theo, tiện ích sẽ quét tài khoản cục bộ của bạn để tìm khóa id_rsa.pub mà chúng ta đã tạo trước đó. Khi tìm thấy, nó sẽ yêu cầu bạn nhập mật khẩu của tài khoản người dùng trên máy chủ từ xa:
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys username@203.0.113.1's password:
Nhập mật khẩu (ký tự bạn nhập sẽ không hiển thị vì lý do bảo mật) và nhấn ENTER. Tiện ích sẽ kết nối đến tài khoản trên máy chủ từ xa bằng mật khẩu bạn cung cấp. Sau đó, nó sẽ sao chép nội dung của khóa ~/.ssh/id_rsa.pub của bạn vào một tệp trong thư mục home của tài khoản người dùng từ xa có tên authorized_keys.
Bạn sẽ thấy kết quả xuất ra như sau:
Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'username@203.0.113.1'" and check to make sure that only the key(s) you wanted were added.
Tại thời điểm này, khóa id_rsa.pub của bạn đã được tải lên tài khoản từ xa. Bạn có thể tiếp tục sang phần tiếp theo.
Sao chép Public Key của bạn Sử dụng SSH
Nếu bạn không có ssh-copy-id nhưng có quyền truy cập SSH dựa trên mật khẩu vào một tài khoản trên máy chủ của bạn, bạn có thể tải lên khóa của mình bằng phương pháp SSH thông thường.
Chúng ta có thể thực hiện việc này bằng cách xuất nội dung của public SSH key trên máy tính cục bộ và chuyển nó qua một kết nối SSH đến máy chủ từ xa. Ở phía bên kia, chúng ta có thể đảm bảo rằng thư mục ~/.ssh tồn tại dưới tài khoản mà chúng ta đang sử dụng, sau đó xuất nội dung đã chuyển qua vào một tệp có tên authorized_keys trong thư mục này.
Chúng ta sẽ sử dụng ký hiệu chuyển hướng >> để thêm nội dung vào cuối tệp thay vì ghi đè lên nó. Điều này cho phép chúng ta thêm khóa mà không làm mất các khóa đã được thêm trước đó.
Lệnh đầy đủ sẽ như sau:
cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Bạn có thể thấy một thông báo như sau:
The authenticity of host '203.0.113.1 (203.0.113.1)' can't be established. ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe. Are you sure you want to continue connecting (yes/no)? yes
Điều này có nghĩa là máy tính cục bộ của bạn không nhận diện được máy chủ từ xa. Điều này sẽ xảy ra lần đầu tiên bạn kết nối tới một máy chủ mới. Hãy gõ yes và nhấn ENTER để tiếp tục.
Sau đó, bạn sẽ được yêu cầu nhập mật khẩu của tài khoản mà bạn đang cố kết nối:
username@203.0.113.1's password:
Sau khi nhập mật khẩu, nội dung của khóa id_rsa.pub của bạn sẽ được sao chép vào cuối tệp authorized_keys của tài khoản người dùng trên máy chủ từ xa. Hãy tiếp tục sang phần tiếp theo nếu thao tác này thành công.
Sao chép Public Key của bạn Thủ Công
Nếu bạn không có quyền truy cập SSH dựa trên mật khẩu vào máy chủ, bạn sẽ phải thực hiện quá trình trên một cách thủ công.
Nội dung của tệp id_rsa.pub của bạn sẽ phải được thêm vào một tệp tại ~/.ssh/authorized_keys trên máy chủ từ xa của bạn theo một cách nào đó.
Để hiển thị nội dung của khóa id_rsa.pub, hãy gõ lệnh sau trên máy cục bộ:
cat ~/.ssh/id_rsa.pub
Bạn sẽ thấy nội dung của khóa, có thể trông như sau:
~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCqql6MzstZYh1TmWWv11q5O3pISj2ZFl9HgH1JLknLLx44+tXfJ7mIrKNxOOwxIxvcBF8PXSYvobFYEZjGIVCEAjrUzLiIxbyCoxVyle7Q+bqgZ8SeeM8wzytsY+dVGcBxF6N4JS+zVk5eMcV385gG3Y6ON3EG112n6d+SMXY0OEBIcO6x+PnUSGHrSgpBgX7Ks1r7xqFa7heJLLt2wWwkARptX7udSq05paBhcpB0pHtA1Rfz3K2B+ZVIpSDfki9UVKzT8JUmwW6NNzSgxUfQHGwnW7kj4jp4AT0VZk3ADw497M2G/12N0PPB5CnhHf7ovgy6nL1ikrygTKRFmNZISvAcywB9GVqNAVE+ZHDSCuURNsAInVzgYo9xgJDW8wUw2o8U77+xiFxgI5QSZX3Iq7YLMgeksaO4rBJEa54k8m5wEiEE1nUhLuJ0X/vh2xPff6SQ1BL/zkOhvJCACK6Vb15mDOeCSq54Cr7kvS46itMosi/uS66+PujOO+xt/2FWYepz6ZlN70bRly57Q06J+ZJoc9FfBCbCyYH7U/ASsmY095ywPsBo1XQ9PqhnN1/YOorJ068foQDNVpm146mUpILVxmq41Cj55YKHEazXGsdBIbXWhcrRf4G2fJLRcGUr9q8/lERo9oxRm5JFX6TCmj6kmiFqv+Ow9gI0x8GvaQ== username@hostname
Truy cập máy chủ từ xa của bạn bằng bất kỳ phương pháp nào bạn có. Điều này có thể là một giao diện console dựa trên web do nhà cung cấp hạ tầng của bạn cung cấp.
Khi bạn đã truy cập vào tài khoản trên máy chủ từ xa, hãy đảm bảo rằng thư mục ~/.ssh đã được tạo. Lệnh sau sẽ tạo thư mục nếu cần, hoặc không làm gì nếu nó đã tồn tại:
mkdir -p ~/.ssh
Bây giờ, bạn có thể tạo hoặc chỉnh sửa tệp authorized_keys trong thư mục này. Bạn có thể thêm nội dung của tệp id_rsa.pub vào cuối tệp authorized_keys, tạo tệp nếu cần, bằng lệnh sau:
echo public_key_string >> ~/.ssh/authorized_keys
Trong lệnh trên, thay public_key_string bằng kết quả xuất ra từ lệnh cat ~/.ssh/id_rsa.pub
mà bạn đã thực thi trên máy cục bộ. Nó sẽ bắt đầu với ssh-rsa AAAA… hoặc tương tự.
Nếu thao tác này thành công, bạn có thể chuyển sang kiểm tra xác thực SSH dựa trên khóa mới của mình.
Bước 3 — Xác Thực với Máy chủ của Bạn Sử dụng SSH Keys
Nếu bạn đã hoàn thành thành công một trong các quy trình trên, bạn sẽ có thể đăng nhập vào máy chủ từ xa mà không cần mật khẩu của tài khoản từ xa.
Quy trình chủ yếu như sau:
ssh username@remote_host
Nếu đây là lần đầu tiên bạn kết nối tới máy chủ này (nếu bạn đã sử dụng phương pháp cuối cùng ở trên), bạn có thể thấy điều sau:
The authenticity of host '203.0.113.1 (203.0.113.1)' can't be established. ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe. Are you sure you want to continue connecting (yes/no)? yes
Điều này có nghĩa là máy tính cục bộ của bạn không nhận diện được máy chủ từ xa. Hãy gõ yes và sau đó nhấn ENTER để tiếp tục.
Nếu bạn không cung cấp passphrase cho private key, bạn sẽ được đăng nhập ngay lập tức. Nếu bạn đã cung cấp passphrase cho private key khi tạo khóa, bạn sẽ được yêu cầu nhập nó ngay bây giờ. Sau đó, một phiên shell mới sẽ được tạo cho bạn với tài khoản trên hệ thống từ xa.
Nếu thành công, hãy tiếp tục để tìm hiểu cách khóa chặt máy chủ.
Bước 4 — Vô Hiệu Hóa Xác Thực Bằng Mật Khẩu trên Máy chủ của Bạn – SSH Key Linux
Nếu bạn có thể đăng nhập vào tài khoản của mình bằng SSH mà không cần mật khẩu, bạn đã cấu hình thành công xác thực SSH dựa trên khóa cho tài khoản của mình. Tuy nhiên, cơ chế xác thực bằng mật khẩu vẫn còn hoạt động, nghĩa là máy chủ của bạn vẫn có nguy cơ bị tấn công brute-force.
Trước khi hoàn thành các bước trong phần này, hãy đảm bảo rằng bạn đã cấu hình xác thực SSH dựa trên khóa cho tài khoản root trên máy chủ này, hoặc tốt hơn, rằng bạn đã cấu hình xác thực SSH dựa trên khóa cho một tài khoản trên máy chủ có quyền sudo. Bước này sẽ khóa các đăng nhập bằng mật khẩu, vì vậy việc đảm bảo rằng bạn vẫn có thể truy cập quyền quản trị là rất quan trọng.
Khi các điều kiện trên được đảm bảo, đăng nhập vào máy chủ từ xa của bạn bằng SSH keys, dù là với quyền root hay tài khoản có quyền sudo. Mở tệp cấu hình của SSH daemon:
sudo nano /etc/ssh/sshd_config
Bên trong tệp, tìm kiếm chỉ thị có tên PasswordAuthentication. Dòng này có thể bị chú thích bằng dấu #. Hãy bỏ chú thích dòng này bằng cách loại bỏ dấu # ở đầu dòng, và đặt giá trị thành no. Điều này sẽ vô hiệu hóa khả năng đăng nhập qua SSH sử dụng mật khẩu tài khoản của bạn:
/etc/ssh/sshd_config
PasswordAuthentication no
Lưu và đóng tệp khi bạn hoàn tất. Để thực hiện các thay đổi vừa tạo, bạn phải khởi động lại dịch vụ. Trên hầu hết các bản phân phối Linux, bạn có thể sử dụng lệnh sau:
sudo systemctl restart ssh
Sau khi hoàn thành bước này, SSH daemon của bạn đã chuyển sang chỉ phản hồi theo SSH keys.
Sử dụng Hardware Security Modules (HSMs) để Lưu Trữ SSH Key
Hardware Security Modules (HSMs) cung cấp một lớp bảo mật bổ sung cho SSH keys bằng cách lưu trữ private keys trong phần cứng chống can thiệp. Thay vì lưu trữ private keys trong một tệp, HSMs lưu trữ chúng một cách an toàn, ngăn chặn truy cập trái phép.
Cách Sử Dụng HSM cho Xác Thực SSH?
- Kiểm tra Tính Tương Thích của HSM: Đảm bảo rằng HSM của bạn hỗ trợ xác thực SSH.
- Sử dụng Module PKCS#11: Tải HSM với một module PKCS#11 tương thích. PKCS#11 là một tiêu chuẩn mật mã định nghĩa API để truy cập các token mật mã như Hardware Security Modules (HSMs), smart cards, và USB security keys. Nó cho phép các ứng dụng, bao gồm SSH, OpenSSL, và GnuPG, sử dụng các thiết bị mật mã để xác thực an toàn.
- Tạo SSH Key trên HSM: Thay vì sử dụng ssh-keygen, tạo khóa trực tiếp trên HSM:
ssh-keygen -D /usr/lib/opensc-pkcs11.so -s user-hsm-key
- Trích xuất Public Key:
ssh-keygen -D /usr/lib/opensc-pkcs11.so -e > ~/.ssh/id_hsm.pub
Thêm public key id_hsm.pub vào tệp authorized_keys trên máy chủ từ xa.
- Cấu hình SSH để sử dụng HSM:
Thêm đoạn sau vào tệp cấu hình SSH của bạn ~/.ssh/config:Host * IdentityAgent /run/user/1000/gnupg/S.gpg-agent.ssh
Bây giờ, SSH sẽ tự động sử dụng khóa được hỗ trợ bởi phần cứng để xác thực.
Lợi ích của việc sử dụng HSMs cho Quản lý SSH Key
- Bảo mật Tăng cường: Private key không bao giờ rời khỏi phần cứng.
- Bảo vệ khỏi Trộm cắp: Ngay cả khi hệ thống bị xâm nhập, khóa vẫn an toàn.
- Tuân thủ: Hữu ích để đáp ứng các yêu cầu tuân thủ bảo mật trong các ngành được quản lý.
Các câu hỏi thường gặp (FAQs)
-
Làm thế nào để tạo một SSH key trên Linux?
Để tạo một SSH key trên Linux, hãy sử dụng lệnh ssh-keygen trong terminal của bạn. Theo mặc định, lệnh này sẽ tạo ra một cặp khóa RSA:
Để có hướng dẫn chi tiết từng bước, hãy tham khảo bài hướng dẫn của chúng tôi về Cách Thiết Lập SSH Keys Trên Ubuntu 12.04.
-
ssh-keygen trong Linux là gì?
ssh-keygen là một công cụ dòng lệnh dùng để tạo, quản lý và chuyển đổi các SSH key. Nó cho phép bạn tạo thông tin xác thực an toàn cho việc truy cập từ xa. Bạn có thể tìm hiểu thêm về ssh-keygen và cách nó hoạt động trong bài Cách tạo SSH Keys với OpenSSH trên macOS, Linux, hoặc Windows Subsystem for Linux
-
Làm thế nào để tạo một SSH-2 RSA key trên Linux?
SSH-2 là giao thức tiêu chuẩn hiện tại cho xác thực SSH. Để tạo một SSH-2 RSA key, hãy chạy:
ssh-keygen -t rsa -b 4096
-
Làm thế nào để tạo một SSH key hợp lệ?
Một SSH key hợp lệ nên đáp ứng các tiêu chí sau:
- Sử dụng loại khóa mạnh, chẳng hạn như RSA (4096-bit) hoặc Ed25519.
- Đảm bảo private key được lưu trữ và bảo vệ an toàn.
- Sử dụng passphrase để tăng cường bảo mật.
- Tránh sử dụng các thuật toán yếu như DSA.
- Để tìm hiểu sâu về quá trình mã hóa và bảo mật SSH, hãy xem bài Tìm hiểu về quá trình mã hoá và kết nối SSH.
-
Làm thế nào để tạo một SSH key từ terminal?
Chỉ cần chạy:
ssh-keygen
Lệnh này sẽ tạo ra một cặp public và private key, thường được lưu trong ~/.ssh/.
-
Làm thế nào để tạo một private key?
Lệnh ssh-keygen tự động tạo ra một private key. Private key thường được lưu tại:
hoặc đối với các tiêu chuẩn mới hơn:
Hãy giữ tệp này an toàn và không chia sẻ nó.
-
Sự khác biệt giữa public và private SSH keys là gì?
Loại khóa Mô tả Sử dụng Public Key Public key được sử dụng để mã hóa và có thể chia sẻ với người khác. Được dùng để xác thực người dùng với máy chủ. Private Key Private key được dùng để giải mã và cần được giữ an toàn. Được dùng để giải mã dữ liệu được mã hóa bằng public key tương ứng. -
Làm thế nào để vô hiệu hóa xác thực bằng mật khẩu trên máy chủ Linux?
Để tăng cường bảo mật, hãy vô hiệu hóa xác thực bằng mật khẩu bằng cách chỉnh sửa tệp cấu hình SSH:
Tìm dòng:
Thay đổi thành:
Sau đó khởi động lại SSH:
Kết luận
Bây giờ, bạn đã cấu hình và chạy xác thực dựa trên SSH key trên máy chủ của mình, cho phép bạn đăng nhập mà không cần cung cấp mật khẩu tài khoản. Từ đây, có rất nhiều hướng bạn có thể đi. Nếu bạn muốn tìm hiểu thêm về cách làm việc với SSH, hãy tham khảo hướng dẫn SSH essentials của chúng tôi.