Đăng nhập server dùng SSH Keys, không cần Password

SSH Keys là một phương thức xác thực đăng nhập với máy chủ qua SSH thông qua việc phân tích giữa một cặp keys, bao gồm một khóa riêng tư (personal 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 – problem và một bên khác nữa 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 đọc đăng nhập VPS thông qua username root và password tự động động sinh ra vì nhà phát hành cung cấp. Các bạn hãy thử mất quyền truy cập VPS nếu để lộ mật khẩu hay là 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.

Hãy thử hiểu, Private Key là chìa khóa vẫn còn Public Key là ổ khóa.

  • Private Key là một file textual content chứa dữ liệu được mã hóa, sử dụng thay đổi đối với password, thường được lưu trữ kĩ lưỡng trên máy tính bạn đọc. Thông thường, personal key mang độ lâu tối thiểu nhất 2048bit và hãy thử được mã hóa thông qua cụm mật khẩu nhằm tránh trường hợp bị sử dụng ngoài ý muốn. Định dạng file tùy thuộc thuộc ứng dụng tạo keys, hãy thử OpenSSH Key, PuTTy Private Key Files .ppk hoặc Bitvise Keypair Files .bkp
  • Public Key là một một file textual content chứa dữ liệu được mã hóa, hãy thử được hoàn thiện tại bất kỳ một server nào. Khi bạn đọc gửi yêu cầu đăng nhập kèm personal key, server sẽ test sự trùng khớp với public key trên server nhằm xác thực yêu cầu truy cập. Định dạng file .pub

1. Tạo SSH Keys

1.1. Đối với Linux (và macOS)

Các bạn hãy thử tạo cặp Keys qua terminal trên VPS Linux bất kỳ với ssh-keygen. Trong quy trình hoàn thiện, phần mềm sẽ hỏi bạn đọc nơi lưu keys và mật khẩu sử dụng personal key (nếu mang).

# ssh-keygen -t rsa -b 2048 Generating public/personal rsa key pair. Enter file during which to avoid wasting the important thing (/root/.ssh/id_rsa): #nơi lưu key Created listing '/root/.ssh'. Enter passphrase (empty for no passphrase): #mật khẩu đối với personal key Enter identical passphrase once more: #xác nhận lại mật khẩu đối với personal 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 picture is: +--[ RSA 2048]----+ |        . +++    | |       + + Xo.   | |        E ++=    | |       . .o.= o  | |        S  + *   | |            o    | |                 | |                 | |                 | +-----------------+ 

Keys được tạo theo thuật toán mã hóa RSA, độ lâu 2048bit và lưu tại /root/.ssh/. Trong đó, Private Key là id_rsa vẫn còn Public Key là id_rsa.pub, đều luôn là OpenSSH Keys

Các bạn cũng hãy thử hoạt động được lệnh ssh-keygen trên macOS.

Lưu ý: trong lúc đượ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 trong lúc sử dụng key. Và bạn đọc nên sử dụng SSH Keys tạo bởi phương pháp này.

1.2. Đối với Windows

Hiện tại, hầu không còn những những ứng dụng SSH đều luôn mang công cụ tạo Keys. Để đảm bảo bảo mật, bạn đọc cần tạo cặp Keys mã hóa bởi thuật toán RSA2 với độ lâu tối thiểu nhất 2048bit.

Quá trình tạo bạn đọc cũng hãy thử nhập mật khẩu sử dụng Passphrase hay be aware về phần đích sử dụng Key Comment.

  • PuTTy với ứng dụng PuTTygen. Ngoài ra, bạn đọc hãy thử dùng (PuTTygen Portable).
  • ZOC với menu File/Create SSh Key Files.
  • Bitvise SSH với Client key supervisor/Generate New.

Tạo SSH Keys thông qua PuTTyGen: lựa tậu SSH-2 RSA2048 như hình rồi giữ Generate đồng thời rê chuột xung quanh khung trắng để khởi tạo những chuỗi ngẫu nhiên. Nếu bạn đọc đã từng mang Private Key thì chỉ cần nhấn Load để tạo Public Key tương ứng(dùng trong lúc convert Private Key dạng OpenSSH sang).

Sau trong lúc tạo xong, màn hình hiển thị Public Key. Các bạn hãy thử thiết lập PassphraseKey Comment. Các bạn nhấn Save personal key để lưu lại.


Tạo SSH Keys thông qua ZOC Client:


Tạo SSH Keys thông qua Bitvise SSH Client:

2. Thnhanh Public Key vào VPS

Đối với server Linux, bạn đọc 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ộ phận nội dung Public key (dạng ssh-rsa AAAA...) chèn thêm phía cuối file. Nhgiữ Ctrl+O để lưu lại nội dung và Ctrl+X để thoát khỏi editor.

Bật chế độ đăng nhập thông qua SSH Keys: kích hoạt (uncomment) những tham số sau trong SSH Config tại /and so forth/ssh/sshd_config

  • PubkeyAuthentication sure
  • ApprovedKeysFile .ssh/authorized_keys

Sau đó, khởi động lại SSH Service

# service sshd restart

three. Sử dụng SSH Keys

Để sử dụng SSH Keys truy cập VPS, những bạn đọc chỉ cần login thông qua những ứng dụng SSH như PuTTy, Bitvise, ZOC và lựa tậu file Private Key đã từng tạo trong lúc trước.

Lưu ý: Thường xuyên đăng nhập thông qua SSH Client nào thì dùng chính ứng dụng ý tạo SSH Keys.

_ Đối với PuTTy
Nếu sử dụng OpenSSH Keys (keys tạo bởi lệnh trong Linux/MacOS,…), bạn đọc cần dùng PuTTygen để convert Private Key sang đúng đăng nhập với PuTTy.

_ Đối với ZOC


Nếu passphrase được thiết lập, ứng dụng sẽ yêu cầu bạn đọc nhập trong quy trình đăng nhập. Nếu không, bạn đọc sẽ được truy cập thẳng vào server.

4. Giao diện sử dụng SSH Keys

Để gia tăng bảo mật, bạn đọc nên thay đổi đổi port truy cập SSH mặc định (22) và theo dõi truy cập SSH với Fail2ban.

Nằm cạnh đó, cũng nên vô hiệu hóa đăng nhập sử dụng mật khẩu thông qua phương thức điều chỉnh tham số sau trong /and so forth/ssh/sshd_config:

PasswordAuthentication no

Qua vừa rồi, hello vọng những bạn đọc đã từng hiểu được SSH Keys là gì, phương thức thức sử dụng hay tầm trọng yếu của nó. Những bạn đọc cũng nên gỡ hẳn phương thức thức đăng nhập thông qua mật khẩu truyền thống, tránh bị lộ/dò mật khẩu.

Chúc bạn đọc sử dụng VPS tốt và an toàn.

Nguồn: https://hocvps.com/ssh-keys-login/

Add Comment