Thứ sáu, 22/06/2012 | 00:00 GMT+7

Cách thiết lập khóa SSH


Giới thiệu về Khóa SSH

Secure Shell (hay được gọi là SSH) là một giao thức mạng mật mã cho phép user thực hiện một cách an toàn một số dịch vụ mạng qua một mạng không an toàn. Khóa SSH cung cấp cách đăng nhập vào server bằng SSH an toàn hơn so với chỉ sử dụng password . Mặc dù password cuối cùng có thể bị bẻ khóa bằng một cuộc tấn công bạo lực, nhưng các SSH key gần như không thể giải mã chỉ bằng vũ lực.

Tạo cặp khóa cung cấp cho bạn hai chuỗi ký tự dài: public key và private key . Bạn có thể đặt public key trên bất kỳ server nào, sau đó mở khóa bằng cách kết nối với client đã có private key . Khi cả hai trùng với nhau, hệ thống sẽ mở khóa mà không cần password . Bạn có thể tăng cường bảo mật hơn nữa bằng cách bảo vệ private key bằng passphrase (password bảo vệ) .

Trong một số lệnh được tìm thấy trong hướng dẫn này, bạn sẽ nhận thấy một số giá trị được đánh dấu . Đây là các biến và bạn nên thay thế chúng bằng các giá trị của riêng mình.

Bước một — Tạo cặp khóa RSA

Bước đầu tiên là tạo cặp khóa trên client (rất có thể đây sẽ chỉ là máy tính của bạn):

  • ssh-keygen -t rsa

Bước hai — Lưu trữ khóa và passphrase (password bảo vệ)

Khi bạn đã nhập lệnh Gen Key, bạn sẽ nhận được một số câu hỏi nữa:

Enter file in which to save the key (/home/demo/.ssh/id_rsa):

Bạn có thể nhấn enter tại đây, lưu file vào trang chủ user (trong trường hợp này, user mẫu của tôi được gọi là bản demo).

Enter passphrase (empty for no passphrase):

Bạn có muốn sử dụng passphrase (password bảo vệ) hay không là tùy thuộc vào bạn. Nhập passphrase (password bảo vệ) có những lợi ích của nó: tính bảo mật của khóa, cho dù được mã hóa đến đâu, vẫn phụ thuộc vào thực tế là nó không hiển thị với bất kỳ ai khác. Nếu private key được bảo vệ bằng passphrase (password bảo vệ) rơi vào tay user lạ sở hữu, họ sẽ không thể đăng nhập vào các account được liên kết của nó cho đến khi tìm ra passphrase (password bảo vệ) , khiến user bị tấn công mất thêm thời gian. Tất nhiên, nhược điểm duy nhất của việc có một passphrase (password bảo vệ) là phải nhập nó vào mỗi khi bạn sử dụng cặp khóa.

Toàn bộ quá trình tạo khóa trông như thế này:

  • ssh-keygen -t rsa
Output
Generating public/private rsa key pair. Enter file in which to save the key (/home/demo/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/demo/.ssh/id_rsa. Your public key has been saved in /home/demo/.ssh/id_rsa.pub. The key fingerprint is: 4a:dd:0a:c6:35:4e:3f:ed:27:38:8c:74:44:4d:93:67 demo@a The key's randomart image is: +--[ RSA 2048]----+ | .oo. | | . o.E | | + . o | | . = = . | | = S = . | | o + = + | | . o + o . | | . o | | | +-----------------+

Khóa công khai hiện nằm trong /home/ demo /.ssh/id_rsa.pub . Khóa riêng tư (nhận dạng) hiện được đặt trong /home/ demo /.ssh/id_rsa .

Bước ba — Sao chép public key

Khi cặp khóa được tạo, đã đến lúc đặt public key trên server mà ta muốn sử dụng.

Bạn có thể sao chép public key vào file ủy quyền của máy mới bằng lệnh ssh-copy-id. Đảm bảo thay thế tên user và địa chỉ IP mẫu bên dưới.

  • ssh-copy-id demo@198.51.100.0

Lưu ý: Nếu bạn là user Mac, ssh-copy-id sẽ không được cài đặt trên máy của bạn. Tuy nhiên, bạn có thể cài đặt nó bằng Homebrew :

  • brew install ssh-copy-id

Ngoài ra, bạn có thể dán các khóa bằng SSH:

  • cat ~/.ssh/id_rsa.pub | ssh demo@198.51.100.0 "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys"

Dù bạn đã chọn lệnh nào, bạn có thể thấy những thứ như sau:

The authenticity of host '198.51.100.0 (198.51.100.0)' can't be established.
RSA key fingerprint is b1:2d:33:67:ce:35:4d:5f:f3:a8:cd:c0:c4:48:86:12.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '198.51.100.0' (RSA) to the list of known hosts.
user@198.51.100.0's password: 

Thông báo này giúp ta đảm bảo ta không thêm các khóa phụ mà bạn không mong đợi.

Đến đây bạn có thể tiếp tục và đăng nhập vào profile user của bạn và bạn sẽ không được yêu cầu nhập password . Tuy nhiên, nếu bạn đặt passphrase (password bảo vệ) khi tạo SSH key , bạn cần nhập passphrase (password bảo vệ) tại thời điểm đó (và khi nào bạn đăng nhập trong tương lai).

Bước 4 Tùy chọn — Vô hiệu hóa password để đăng nhập root

Khi bạn đã sao chép các SSH key vào server của bạn và đảm bảo bạn có thể đăng nhập bằng các SSH key một mình , bạn có thể tiếp tục và hạn chế đăng nhập root chỉ được phép thông qua các SSH key .

Để thực hiện việc này, hãy mở file cấu hình SSH:

  • sudo nano /etc/ssh/sshd_config

Trong file đó, hãy tìm dòng bao gồm PermitRootLogin và sửa đổi nó đảm bảo rằng user chỉ có thể kết nối với SSH key của họ:

/ etc / ssh / sshd_config
PermitRootLogin without-password

Lưu file khi bạn hoàn tất.

Để những thay đổi này có hiệu lực:

  • sudo systemctl reload sshd.service

Phụ lục DigitalOcean

Control panel DigitalOcean cho phép bạn thêm public key vào Server mới của bạn khi chúng được tạo. Bạn có thể tạo Khóa SSH ở một vị trí thuận tiện, chẳng hạn như máy tính, rồi tải public key lên phần SSH key .

Sau đó, khi bạn tạo Server mới, bạn có thể chọn bao gồm public key đó trên server . Không có password root nào sẽ được gửi qua email cho bạn và bạn có thể đăng nhập vào server mới từ ứng dụng client đã chọn. Nếu bạn đã tạo một passphrase (password bảo vệ) , bạn sẽ được yêu cầu nhập passphrase (password bảo vệ) đó khi đăng nhập.

<div class = “author”> Bởi Etel Sverdlov </div>


Tags:

Các tin liên quan