SSH(Secure Shell) là một giao thức mạng mã hóa để vận hành các dịch vụ mạng một cách an toàn trên một mạng không bảo mật. Các ứng dụng đáng chú ý nhất của nó là đăng nhập từ xa và thực thi dòng lệnh.
SSH key-pair thông qua việc sử dụng các kỹ thuật xác nhận khóa mã hóa, mang đến nhiều bảo về đăng nhập hơn là dùng mật khẩu truyền thống. Trong khi mật khẩu truyền thống có thể bị tấn công brute force thì SSH Key gần như là không thể giải mã.
Mục lục
HƯỚNG DẪN KẾT NỐI SSH BẰNG KEY-PAIR
Có 2 phương pháp(PP) để tạo ssh key-pair:
PP1: Tạo Key từ Server
Debian Server
Tải dịch vụ SSH.
$ apt -y install ssh
Tạo Key-pair.
$ ssh-keygen -t rsa
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa
Your public key has been saved in /root/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:ykjUNWK6UiUS7V2h3J6xNiOv9J3s3MeyS4otLUP1VqU root@HTCTIPs
The key's randomart image is:
+---[RSA 2048]----+
| oo. + +. |
| ..B =.. .|
| .+.+.o o |
| o.... +. E |
| . o . S. . . |
| o o =.o o |
| . +... ... |
| . o+*.=. o |
| . o=O += |
+----[SHA256]-----+
Đổi tên id_rsa.pub thành ‘/root/.ssh/authorized_keys.pub’.
Như hình phần đầu bài Server sẽ giữ ‘Public key’ còn Client sẽ giữ ‘Private key’.
$ mv /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys.pub
$ chmod 600 ~/.ssh/authorized_keys.pub
$ chmod 700 ~/.ssh/
#Hiển thị nội dung trong public key
$ cat /root/.ssh/authorized_keys.pub
ssh-rsa MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxzYuc22QSst/dS7geYYK5l5kLxU0tayNdixkEQ17ix
+CUcUbKIsnyftZxaCYT46rQtXgCaYRdJcbB3hmyrOavkhTpX79xJZnQmfuamMbZBqitvscxW9zRR9tBUL6vdi/0rpoUwPMEh8+
Bw7CgYR0FK0DhWYBNDfe9HKcyZEv3max8Cdq18htxjEsdYO0iwzhtKRXomBWTdhD5ykd/fACVTr4+KEY+IeLvubHVmLUhbE5
NgWXxrRpGasDqzKhCTmsa2Ysf712rl57SlH0Wz/Mr3F7aM9YpErzeYLrl0GhQr9BVJxOvXcVd4kmykjUNWK6UiUS7V2h3J6xNiOv9J3s3MeyS4otLUP1VqU root@HTCTIPs
Tìm dòng 4 dòng dưới đây sửa lại như sau:
$ vi /etc/ssh/sshd_config
#Dòng 32:
PermitRootLogin prohibit-password
#Dòng 37:
PubKeyAuthentication yes
#Dòng 40
AuthorizedKeysFile .ssh/authorized_key .ssh/authorized_key.pub
#Dòng 56
PasswordAuthentication no
#Khởi động lại dịch vụ
$ systemctl restart ssh
Việc còn lại là sao chép id_rsa đến Client.(id_rsa ở đây là private key).
Bạn có thể dùng những phương tiện khác để sao chép private key đến Client, miễn là kẻ gian không có được nó.
Sao chép id_rsa đến Debian Client
#192.168.1.2 là địa chỉ IP của Debian Client
$ scp /root/.ssh/id_rsa root@192.168.1.2:/root/.ssh/
Kiểm tra kết nối
Kiểm tra kết nối SSH key.
Sao chép id_rsa đến Windows Client
Kiểm tra kết nối
Mở Putty. Kết nối.
PP2: Tạo Key từ Client
Cách 1: Debian Client
Tải dịch vụ SSH.
$ apt -y install ssh
Tạo Key-pair.
$ ssh-keygen -t rsa
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa
Your public key has been saved in /root/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:14aab3f74ceb1979393b580d13a1ae8a83aaf16a036657b root@Client
The key's randomart image is:
+---[RSA 2048]----+
| oo. + +. |
| ..B =.. .|
| .+.+.o o |
| o.... +. E |
. o . S. . . |
| o o =.o |
| . +... ... |
| . o+*.=. o |
| . o=O += |
+----[SHA256]-----+
#Hiển thị nội dung trong public key
$ cat /root/.ssh/id_rsa.pub
ssh-rsa MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyTGwQPyEtTsOAvkMm5XP
TdsbsXG5I2yOcMI+y0UwGRN7APPBSNMVNAJM5UMSfcYnIhRHG9MHjlQWE3mI30Ch
+6Ry4Z1qT3UtfIhxHlNk2EhFql5xcCE42evcUL8aQvSdtoFreUmc0RmePV7xYfZg
Bo2uK9hRpWXAHDBondmTUvvi+iRoKf6uTqPK9wfYPu8BcmJWdUoaMSn9Tf5NwYLe
ayKEuWWMxK0ER7FAXvZkHp+AFgGgkapPco2zqb8x4aYzp0g/CzT6Pw0sUTJ2EfQS
L5sAtUTlvrNF2i9e27xZkH1ChLc6egF/cAIzM8iBj+08DtXWR4g4Xjz0F7OGpfMs
5QIDAQAB root@Client
$ chmod 600 ~/.ssh/id_rsa.pub
$ chmod 700 ~/.ssh/
$ scp /root/.ssh/id_rsa.pub root@192.168.1.1:/root/.ssh/authorized_keys.pub
authorized_keys.pub 100%
Sau khi chép thành công Public Key đến Server. Trên Server phải cấu hình bắt buộc như sau:
#Tìm 4 dòng đưới đây và sửa lại như sau:
$ vi /etc/ssh/sshd_config
#Dòng 32:
PermitRootLogin prohibit-password
#Dòng 37:
PubKeyAuthentication yes
#Dòng 40
AuthorizedKeysFile .ssh/authorized_key .ssh/authorized_key.pub
#Dòng 56
PasswordAuthentication no
#Khởi động lại dịch vụ
$ systemctl restart ssh
Kiểm tra kết nối
Kiểm tra kết nối SSH key.
Cách 2: Windows Client
Tải Putty và cài đặt.
Windows 64-bit MSI installer:
Windows 32-bit MSI installer:
Windows ARM64 MSI installer:
Mật khẩu giải nén(nếu có): htctips.net
Sau khi chép thành công Public Key đến Server. Trên Server phải cấu hình bắt buộc như sau:
#Tìm 4 dòng đưới đây và sửa lại như sau:
$ vi /etc/ssh/sshd_config
#Dòng 32:
PermitRootLogin prohibit-password
#Dòng 37:
PubKeyAuthentication yes
#Dòng 40
AuthorizedKeysFile .ssh/authorized_key .ssh/authorized_key.pub
#Dòng 56
PasswordAuthentication no
#Khởi động lại dịch vụ
$ systemctl restart ssh
Kiểm tra kết nối
Mở Putty. Kết nối.
Chúc các bạn kết nối thành công SSH key-pair sau bài viết này! Mọi thắc mắc vui lòng comment phía dưới bài viết hoặc liên hệ mình nhé!