Cách đăng nhập SSH vào VPS bằng SSH Keys.
SSH Keys là một phương thức xác thực đăng nhập với máy chủ qua SSH bằng việc đối chiếu giữa một cặp keys, bao gồm một khóa riêng tư (private key) và khóa công khai (public key) tương ứng. SSH Keys sử dụng giao thức xác thực challenge-response mà trong đó một bên trình bày một câu hỏi – challenge và một bên khác phải cung cấp một câu trả lời hợp lệ – response để được chứng thực.
Thông thường, bạn đăng nhập VPS thông qua username root và password tự động sinh ra do nhà phát hành cung cấp. Bạn có thể mất quyền truy cập VPS nếu để lộ mật khẩu hay bị dò tìm mật khẩu qua Brute Force Attack. Do đó, việc sử dụng SSH Keys sẽ bảo mật hơn rất nhiều so với phương pháp đăng nhập dùng mật khẩu truyền thống.
Có thể hiểu, Private Key là chìa khóa còn Public Key là ổ khóa.
1 Cách tạo ra SSH Keys
1.1 Tạo Keys trên Linux và MacOS
ssh-keygen
. Trong quá trình cài đặt, chương trình sẽ hỏi bạn nơi lưu keys và mật khẩu sử dụng private key (nếu có).ssh-keygen -t rsa -b 2048 Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): #nơi lưu key Created directory '/root/.ssh'. Enter passphrase (empty for no passphrase): #mật khẩu cho private key Enter same passphrase again: #xác nhận lại mật khẩu cho private key 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: 44:3e:dc:59:30:ed:f2:25:f8:71:42:e4:9c:d2:24:9a root@hocvps The key's randomart image is: +--[ RSA 2048]----+ | . +++ | | + + Xo. | | E ++= | | . .o.= o | | S + * | | o | | | | | | | +-----------------+
Keys được tạo theo thuật toán mã hóa RSA, độ dài 2048bit và lưu tại /root/.ssh/
. Trong đó, Private Key là id_rsa còn Public Key là id_rsa.pub, đều là OpenSSH Keys
Bạn cũng có thể chạy được lệnh ssh-keygen
trên macOS.
Lưu ý: khi được hỏi passphrase, nên nhấn phím Enter để trống, tránh phải nhập thêm mật khẩu một lần nữa khi sử dụng key. Và bạn nên sử dụng SSH Keys tạo bởi phương pháp này, ngược lại nếu bạn muốn an toàn hơn thì sử dụng mã passphrase của riêng bạn để xác thực.
1.2 Tạo trên Windows với phần mềm
1.2.1 với Xshell 6
Tại phần mềm Xshell bạn truy cập vào phần Tools > User Key Manager…
Cửa sổ bật lên bạn nhấn vào Generate để bắt đầu tạo Key.
Bạn có thể để cấu hình mặc định và nhấn next và chú ý phần Passphrase nhập vào mật khẩu xác nhận mà bạn có thể nhớ để sử dụng.
Sau khi nhấn Finish đề hoàn tất tạo mã, bạn có thể nhấn đúp chuột vào phần id_rsa để được tạo ( cái này là Private Key ), sau đó nhấn qua tab Public key để sao chép hoặc lưu lại File này để đưa lên VPS.
2 Thêm Public Key vào VPS
Đối với server Linux, bạn cần lưu thông tin Public Key tại ~/.ssh/authorized_keys
để xác thực đăng nhập sử dụng SSH Keys.
# mkdir ~/.ssh/ # nano ~/.ssh/authorized_keys
Copy toàn bộ nội dung Public key (dạng ssh-rsa AAAA...
) chèn thêm phía cuối file. Nhấn Ctrl+O để lưu lại nội dung và Ctrl+X để thoát khỏi editor.
Bạn sử dụng NANO, VI hay VIM đều được nhé, nếu chưa có NANO bạn chạy lệnh :
yum install nano -y
Bật chế độ đăng nhập bằng SSH Keys: kích hoạt (uncomment) các tham số sau trong SSH Config tại /etc/ssh/sshd_config
- PubkeyAuthentication yes
- AuthorizedKeysFile .ssh/authorized_keys
Sau đó, khởi động lại SSH Service
# service sshd restart
3 Đăng nhập vào VPS sử dụng SSH Keys
Sau khi bạn đã thêm vào VPS bạn có thể đăng nhập lại với cú pháp SSH thông thường.
ssh root@YOUR IP VPS
Sau khi đăng nhập thì cửa sổ bật lên để xác minh, bạn chọn phần Public Key và chọn User Key tương ứng mà bạn đã thêm vào VPS – nếu bạn có tệp thì cũng có thể chọn Private Key để thực hiện với việc nhấn Browse.
Sau khi kết nối thì bạn cần nhập mã Passphrase mà bạn đã tạo để xác nhận và kết thúc bằng OK để đăng nhập vào VPS của bạn.
Chúc bạn thành công.