Cách thiết lập SSH key

1 năm trước

Cách thiết lập SSH key

Sơ lược về SSH Key

Secure Shell (thường gọi là SSH) là một giao thức mật mã cho phép người dùng thực hiện một cách an toàn một số dịch vụ mạng trên một kết nối không an toàn. SSH key cung cấp một cách đăng nhập an toàn hơn vào một máy chủ hơn việc sử dụng một mật khẩu đơn lẻ. Trong khi một mật khẩu cuối cùng có thể bị bẻ khóa với một cuộc tấn công (brute force attack),SSH key gần như không thể giải mã chỉ với brute force attack.

Tạo ra một key pair( cặp gồm 2 key) chứa hai chuỗi kí tự: public key và private key. Bạn có thể đặt public key trên bất kỳ server nào, và mở khóa nó bằng cách kết nối nó với một client có private key. Khi chúng khớp nhau, hệ thống mở mà không cần mật khẩu. Bạn có thể tăng tính bảo mật bằng cách private key với mật khẩu.

Với những phần được hightlight, bạn có thể thay thế chúng bằng giá trị của riêng bạn.

Bước 1—Tạo RSA Key Pair

Bước đầu tiên là tạo một key pair trên client machine.

ssh-keygen -t rsa

 

Bước 2—Lưu trữ key và mật khẩu

Sau khi nhập lệnh Gen Key, sẽ có một vài câu hỏi:

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

Bám Enter để lưu key ở thư mục mặc định.

Enter passphrase (empty for no passphrase):

Bạn có thể nhập vào mật khẩu hoặc không. Đươcg nhiên việc có mật khẩu sẽ an toàn hơn, vì kể cả khi private key của bạn bị đánh cắp và hacker giải mã được chúng, vẫn cần thời gian để hacker tìm ra mật khẩu của bạn. Điểm hạn chế của việc dùng mật khẩu là bạn phải nhập vào chúng mỗi khi đăng nhập.

Quá trình tạo key sẽ như sau:

ssh-keygen -t rsa 

 

OutputGenerating 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 |
| |
+-----------------+

Public key được lưu trong /home/demo/.ssh/id_rsa.pub, còn private key đưuọc lưu trong/home/demo/.ssh/id_rsa.

 

Bước 3—Copy Public Key

Khi key pair đã được tạo, hãy upload public key của bạn lên server.

Bạn có thể copy public key vào file authorized_keys của terminal với lệnh ssh-copy-id. Chắc chắn rằng bạn đã thay thế username và IP address thành giá trị của bạn.

ssh-copy-id demo@198.51.100.0

 

Note: Nếu bạn dùng Mac, ssh-copy-id sẽ không được cài đặt sẵn. Tuy nhiên bạn có thể truy cập vào Homebrew để cài vào máy của mình với lệnh:
 

brew install ssh-copy-id

 

Cách khác là sử dụ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 dùng cách nào kết quả cũng 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: 

Điều này đảm bảo rằng bạn không vô tình thêm vào key nào.

Giờ hãy đăng nhập vào user của mình, và bạn sẽ không cần mật khẩu. Tuy nhiên nếu bạn đặt mật khẩu khi tạo SSH key thì bạn vẫn cần mật khẩu bất cứ khi nào đăng nhập

 

Bước 4—Vô hiệu hóa Password cho Root Log in( tùy chọn)

Khi đã tạo một cặp SSH key thành công và chắc chắn có thể đăng nhập vào server bằng SSH, bạn có thể cấm truy cập vào tài khoản root qua mật khẩu để bảo mật hệ thống.

Mở file cấu hình SSH

sudo nano /etc/ssh/sshd_config 

 

Tìm đến dòng chứa PermitRootLogin và sửa nó để cấm đăng nhập qua mật khẩu.

/etc/ssh/sshd_config
PermitRootLogin without-password

Lưu và đóng file.

Restart:

sudo systemctl reload sshd.service 

 

Với ViCloud

ViCloud control panel cho phép bạn thêm public key vào Cloud Server mới khi tạo. Bạn có thể tạo SSH key trên một thiết bị dễ dàng thực hiện( như trên máy tính cá nhân) rồi upload public key và mục SSH Key.

Sau đó, khi tạo Cloud Server, bạn có thể cho phép nhập publickey đó vào server. Bạn có thể log in vào server từ những thiết bị đã chọn mà không cần mật khẩu. Nếu đặt mật khẩu lúc tạo public key thì bạn sẽ phải nhập mật khẩu.