PuTTYgen là công cụ tạo SSH key cho phiên bản Linux của PuTTY. Nó hoạt động tương tự như công cụ ssh-keygen trong OpenSSH.
Chức năng cơ bản của nó là tạo các cặp public key và private key. PuTTY lưu trữ các key theo định dạng riêng của nó trong các file .ppk. Tuy nhiên, công cụ cũng có thể chuyển đổi các định dạng của key.
Cài đặt
Trong một số bản phân phối Linux, công cụ PuTTYgen cần được cài đặt riêng biệt với PuTTY client. Ví dụ, trong Debian Linux, lệnh sau sẽ cài đặt nó:
sudo aptitude install putty-tools
Tạo một key pair mới để xác thực
Để tạo key pair mới cho việc xác thực từ dòng lệnh, hãy sử dụng câu lệnh như sau:
puttygen -t rsa -b 2048 -C "user@host" -o keyfile.ppk
Bạn nên sử dụng cụm mật khẩu cho các file key nhằm mục đích sử dụng tương tác. File key được sử dụng để tự động hóa (ví dụ, WinSCP thường có cụm mật khẩu trống).
Cài đặt public key như một key xác thực trên một server
Với cả hai server Tectia SSH và OpenSSH, quyền truy cập vào tài khoản được cấu hình bằng cách tạo public key (khóa công khai), sao chép public key vào server và thêm public key vào file ~/.ssh/authorized_keys.
Để trích xuất public key, hãy sử dụng:
puttygen -L keyfile.ppk
Sau đó đăng nhập vào server, chỉnh sửa file authorized_keys với trình chỉnh sửa yêu thích của bạn, rồi cắt và dán public key bằng lệnh trên vào file authorized_keys. Lưu file. Cấu hình PuTTY để sử dụng file private key của bạn (keyfile.ppk). Sau đó kiểm tra xem đăng nhập có hoạt động không.
Thay đổi cụm mật khẩu cho một key
Có một lời khuyên cho bạn là tất cả các SSH key nên được tái tạo và thay đổi định kỳ. Universal SSH Key Manager có thể tự động hóa điều này. Việc thay đổi cụm mật khẩu là điều bắt buộc, không gì có thể thay thế được. Các hướng dẫn này cũng có thể được sử dụng để thêm cụm mật khẩu vào key được tạo mà chưa có mật khẩu.
Sử dụng lệnh sau để thay đổi cụm mật khẩu:
puttygen keyfile.ppk -P
Điều này sẽ nhắc bạn đặt cụm mật khẩu mới và ghi kết quả trở lại keyfile.ppk với cụm mật khẩu mới.
Xuất một private key sang Tectia SSH hoặc OpenSSH
Rất hiếm khi cần xuất một private key từ PuTTY sang Tectia SSH hoặc OpenSSH. Tuy nhiên, quá trình này vẫn được mô tả ở đây, vì đôi khi nó có thể cần thiết. Ví dụ, khi một ứng dụng được chuyển sang Linux bằng đám mây và server đích để chuyển file không thể dễ dàng được cấu hình lại nhằm thay đổi một key đã được xác thực.
Tectia SSH và OpenSSH đều hỗ trợ định dạng file private key OpenSSH, do đó, sử dụng định dạng file key đó cũng được mô tả ở đây. Tectia SSH cũng hỗ trợ một số định dạng khác.
Để chuyển đổi một private key PuTTY hiện có cho Tectia hoặc OpenSSH, hãy sử dụng lệnh:
puttygen keyfile.ppk -O private-openssh -o keyfile
Sau đó sao chép keyfile vào thư mục .ssh trên host nơi Tectia hoặc OpenSSH sẽ được chạy.
Các tùy chọn dòng lệnh
Dòng lệnh cơ bản của PuTTYgen:
- Chỉ định file key để đọc hoặc loại key và kích thước cần tạo.
- Hành động tùy chọn để thực hiện (ví dụ, thay đổi cụm mật khẩu)
- Loại và file output tùy chọn.
Dòng lệnh cơ bản là:
puttygen [-t keytype [-b bits] [-q] | keyfile]
[-C new-comment] [-P]
[-O output-type | -p | -l | -L]
[-o output-file]
Các tùy chọn là:
- keyfile: Tên của file key hiện có để đọc, khi sửa đổi một key hiện có.
- -t keytype: Chỉ định loại key mới cần tạo. Các giá trị được chấp nhận bao gồm rsa và dsa. rsa1 cũng được hỗ trợ để tạo ra các key SSH-1 kế thừa, nhưng chúng không bao giờ cần thiết nữa.
- -b bits: Chỉ định số bit trong key. Đối với các key DSA, 1024 là kích thước phù hợp. Đối với các key RSA, 2048 hoặc thậm chí 4096 bit được khuyến nghị.
- -q: Loại bỏ các thông báo về sự tiến triển trong quá trình tạo key.
- -C new-comment: Chỉ định chú thích để mô tả key. Nhận xét không ảnh hưởng đến hoạt động của key. Có thể chỉ định thêm nhận xét cho các key mới hoặc cho các key hiện có để thay đổi nhận xét của chúng. Thông thường, nhận xét sẽ được sử dụng để xác định chủ sở hữu chính, nhưng vì bất kỳ giá trị nào có thể được chỉ định mà không có một căn cứ cụ thể nào cả.
- -P: Yêu cầu thay đổi cụm mật khẩu của key. Công cụ sẽ nhắc tạo cụm mật khẩu mới. Không thể chỉ định cụm mật khẩu trên dòng lệnh. Cụm mật khẩu sẽ được sử dụng để mã hóa private key.
- --old-passphrase-file file: Chỉ định một file để đọc cụm mật khẩu cũ của key. Điều này chỉ cần thiết nếu sử dụng một key hiện có, được bảo vệ bởi cụm mật khẩu.
- --new-passphrase file: Chỉ định cụm mật khẩu mới cho key. Điều này có thể được sử dụng khi tạo key mới hoặc bằng tùy chọn -P để thay đổi cụm mật khẩu.
- -O output-type: Chỉ định những gì được xuất ra. Theo mặc định, private key sẽ là output. Các giá trị sau có thể được chỉ định:
- private: Lưu private key trong định dạng PuTTY key độc quyền dưới dạng file .ppk.
- fingerprint: Xuất fingerprint của key. Fingerprint xác định duy nhất key và có thể, ví dụ, được đọc qua điện thoại để đảm bảo key là cái được đề cập đến.
- public: Lưu public key tương ứng với private key. Đối với SSH2 key, public key sẽ được xuất ở định dạng được chỉ định bởi RFC 4716. Ví dụ, định dạng này được hỗ trợ bởi Tectia SSH. Các key ở định dạng đó trông sẽ giống như sau:
---- BEGIN SSH2 PUBLIC KEY ---- Comment: user@example.comAAAAB3NzaC1yc2EAAAABIwAAAIEA1on8gxCGJJWSRT4uOrR13mUaUk0hRf4RzxSZ1zRb YYFw8pfGesIFoEuVth4HKyF8k1y4mRUnYHP1XNMNMJl1JcEArC2asV8sHf6zSPVffozZ 5TT4SfsUu/iKy9lUcCfXzwre4WWZSXXcPff+EHtWshahu3WzBdnGxm5Xoi89zcE= ---- END SSH2 PUBLIC KEY ----
- public-openssh: Lưu public key, trong định dạng độc quyền của OpenSSH. Định dạng này cũng được hỗ trợ bởi Tectia SSH như sau:
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBN+Mh3U/3We4VYtV1QmWUFIzFLTUeegl1Ao5/QGtCRGAZn8bxX9KlCrrWISIjSYAwCajIEGSPEZwPNMBoK8XD8Q= cow@example.com
- private-openssh: Chuyển đổi private key sang định dạng OpenSSH. Điều này chỉ có thể được sử dụng cho các SSH2 key.
- private-sshcom: Chuyển đổi private key thành định dạng được sử dụng bởi Tectia SSH.
- private-openssh: Bao gồm private key cho định dạng được OpenSSH sử dụng. Định dạng này cũng được hỗ trợ bởi Tectia SSH.
- -l giống như fingerprint -O.
- -L tương tự như -O public-openssh.
- -p giống như -O public.
- -o output-file: Chỉ định file output. Tùy chọn này là bắt buộc khi tạo key mới. Nếu không, khi thay đổi cụm mật khẩu hoặc nhận xét, mặc định file gốc sẽ bị ghi đè. Khi xuất ra public key hoặc fingerprint, mặc định là output tiêu chuẩn.
- -h hoặc --help: Các output giúp tóm tắt văn bản và công dụng.
- -V hoặc --version: Xuất ra số phiên bản của công cụ.
- --pgpfp: Xuất các fingerprint của các key PGP Master được sử dụng cho các phiên bản mới của PuTTY.
Xem thêm: