Nếu bạn từng quản lý máy chủ Linux từ Windows, bạn có thể đã dùng PuTTY hoặc ít nhất nghe nói về nó. Đây là tiện ích xuất sắc và đã là SSH client yêu thích nhiều năm. Tuy nhiên, năm 2019 Windows 10 bắt đầu bao gồm OpenSSH client sẵn có, nên PuTTY không còn cần thiết nữa.
Tại sao nên tránh đăng nhập dựa trên mật khẩu
OpenSSH daemon chạy trên máy chủ đã được chiến đấu qua nhiều năm sử dụng, lạm dụng và bản vá phần mềm. Việc máy chủ bị hack do lỗi trong SSH daemon rất hiếm. Tuy nhiên, nhiều vụ xâm nhập được tạo điều kiện bởi quản trị viên sử dụng mật khẩu yếu. Ngay cả mật khẩu có vẻ phức tạp, với chữ và số, thường nhạy cảm trước tấn công brute-force (dò tìm toàn bộ).
Đến SSH keys. Chúng không thể bị brute-force — chúng đơn giản quá phức tạp. Nếu bạn có thể, hãy vô hiệu hóa đăng nhập mật khẩu trong file "sshd_config" (trên máy chủ) và dùng khóa thay vào đó. Trong trường hợp bạn đi công tác và không thể mang theo laptop, chỉ cần giữ khóa riêng trên USB stick và gắn vào chuỗi chìa khóa vật lý. Máy chủ của bạn sẽ an toàn hơn nhiều như vậy.
Tạo cặp khóa SSH Public/Private
Mở Command Prompt từ menu Start và nhập:
ssh -V
Bạn nên nhận được kết quả tương tự hình ảnh dưới đây,
Nếu bạn nhận được lỗi "command not recognized" (lệnh không được nhận diện), chỉ làm theo các bước ở đây để cài đặt OpenSSH. Điều này chỉ xảy ra trên các phiên bản Windows 10 cũ chưa được nâng cấp trong rất lâu.
Để tạo cặp khóa public/private, nhập lệnh này trong Command Prompt:
ssh-keygen
Ở lời nhắc đầu tiên, "Enter file in which to save the key" (Nhập file để lưu khóa), nhấn Enter để lưu ở vị trí mặc định.
Ở lời nhắc thứ hai, "Enter passphrase (empty for no passphrase)" (Nhập cụm từ mật khẩu (để trống nếu không có cụm từ mật khẩu)), bạn có hai lựa chọn:
- Nhấn Enter để tạo khóa không mã hóa. Nếu bạn là người duy nhất dùng máy tính, điều này an toàn.
- Nhập mật khẩu. Điều này sẽ mã hóa khóa của bạn. Đây là ý tưởng tốt nếu bạn chia sẻ máy tính với người khác. Nếu bạn định mang khóa trên USB stick, chắc chắn dùng mật khẩu ở đây. Nếu bạn dùng cụm từ mật khẩu mạnh và ai đó đánh cắp khóa từ thiết bị USB của bạn, họ sẽ không thể dùng nó nếu không có mật khẩu.
Khi bạn xong, bạn sẽ thấy tương tự hình ảnh dưới đây.
Mở khóa công khai (Public Key)
Như tên gợi ý, khóa riêng (private key) dành cho bạn và chỉ bạn. Không bao giờ sao chép/lưu khóa này trên máy chủ!
Khóa công khai (public key), tuy nhiên, dành để lưu trên các máy chủ bạn định truy cập, trong file "~/.ssh/authorized_keys" (thay vào đó, dán/thêm vào file này). Để mở khóa này, sao chép, và sau đó dán, nơi cần thiết, nhập lệnh sau trong Command Prompt.
notepad %userprofile%\.ssh\id_rsa.pub
Hầu hết nhà cung cấp đám mây máy tính (VPS) hiện nay cho bạn cách dễ dàng thêm khóa công khai của bạn qua giao diện điều khiển web. Khi bạn khởi động máy chủ với khóa công khai liên kết này, bạn sẽ có thể đăng nhập với khóa riêng của bạn. Vì khóa riêng ở vị trí mặc định, lệnh để đăng nhập vào máy chủ/VPS đơn giản như:
ssh root@203.0.113.1
Kết luận
Như bạn thấy, tạo khóa SSH trên Windows ngày nay rất dễ dàng. Cơ bản, lệnh ssh-keygen làm tất cả công việc. Nếu bạn thấy khó hiểu cách thêm khóa công khai vào máy chủ, hãy tra tài liệu của nhà cung cấp. Họ luôn có trang mô tả chi tiết cách làm điều này.