Làm cách nào để thay đổi mật khẩu khóa riêng của tôi?


284

Tôi có một cặp khóa công khai / riêng tư hiện có. Khóa riêng được bảo vệ bằng mật khẩu và mã hóa có thể là RSA hoặc DSA. Các khóa này là loại bạn tạo ssh-keygenvà thường lưu trữ theo ~/.ssh.

Tôi muốn thay đổi mật khẩu của khóa riêng. Làm thế nào để tôi đi về nó, trên một vỏ Unix tiêu chuẩn?

Ngoài ra, làm thế nào để tôi đơn giản loại bỏ mật khẩu? Chỉ cần thay đổi nó để trống?

Câu trả lời:


372

Để thay đổi cụm mật khẩu trên khóa DSA mặc định của bạn:

$ ssh-keygen -p -f ~/.ssh/id_dsa

sau đó cung cấp cụm mật khẩu cũ và mới (hai lần) theo lời nhắc. (Sử dụng ~/.ssh/id_rsanếu bạn có khóa RSA.)

Thêm chi tiết từ man ssh-keygen:

[...]
SYNOPSIS
    ssh-keygen [-q] [-b bits] -t type [-N new_passphrase] [-C comment]
               [-f output_keyfile]
    ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile]
[...]
     -f filename
             Specifies the filename of the key file.
[...]
     -N new_passphrase
             Provides the new passphrase.

     -P passphrase
             Provides the (old) passphrase.

     -p      Requests changing the passphrase of a private key file instead of
             creating a new private key.  The program will prompt for the file
             containing the private key, for the old passphrase, and twice for
             the new passphrase.
[...]

1
Đây là từ vận chuyển trang man với net-misc / openssh-5.2_p1-r2 trên Gentoo Linux.
Mike Mazur

12
Ngoài ra, vì lợi ích của người lười biếng trong tương lai, tôi sẽ đảo ngược thứ tự: trả lời nhanh trước, trang nam sau.
kch

2
Tôi nghĩ rằng câu trả lời là tuyệt vời vì cả hai đều cho thấy nơi bạn có thể thay đổi mật khẩu và nơi để tìm câu trả lời. Tôi đã giúp rất nhiều người thiết lập các khóa ssh và đối với họ thực sự nhớ công cụ nào họ đã sử dụng không phải lúc nào cũng dễ dàng. Bên cạnh đó, tìm kiếm câu trả lời trên 'mạng là lựa chọn đầu tiên cho nhiều người ...
sastorsl

5
Nếu máy của bạn sử dụng OpenSSH> = 6.5, bạn nên sử dụng -otùy chọn để bật định dạng khóa riêng mới (bcrypt là KDF theo mặc định). Với các phiên bản OpenSSH cũ hơn, hãy sử dụng PKCS # 8 cho các tệp khóa riêng an toàn hơn .
Quinn Comendant

2
@FranciscoLuz lệnh trong câu trả lời của tôi là dành riêng cho khóa DSA. Nếu bạn có khóa RSA, thì lệnh của bạn là chính xác. Tôi đã thêm một blurb vào câu trả lời để giải quyết điều này.
Mike Mazur

-9

Xóa các khóa công khai / riêng tư SSH của bạn:

rm ~/.ssh/id_rsa*

Tạo lại khóa tuyệt vời, chọn cụm mật khẩu mới:

ssh-keygen -t rsa -f ~/.ssh/id_rsa

Thêm khóa riêng vừa tạo vào Keychain OS X của bạn để lưu cụm mật khẩu và quản lý mở khóa tự động:

ssh-add -K ~/.ssh/id_rsa

Sao chép khóa chung vào bảng tạm OS X để thêm vào các dịch vụ web như GitHub, v.v.

cat ~/.ssh/id_rsa.pub | pbcopy

Thêm khóa công khai mới được tạo của bạn vào ~/.ssh/authorized_keystệp của máy chủ từ xa. Đảm bảo đảm bảo quyền chính xác của cả ~/.sshthư mục từ xa (700) và ~/.ssh/authorized_keys(600). Bạn có thể muốn điều tra bằng cách sử dụng ssh-copy-idđể giảm bớt quá trình này.


3
Người đăng đã hỏi cách thay đổi cụm mật khẩu trên khóa của họ, không vứt nó đi và tạo một cụm từ mới; và họ không bao giờ đề cập đến OS X.
musicinmybrain

2
Tôi đã nêu lên câu trả lời này nếu không có ba vấn đề sau: 1. Xóa các khóa cũ không phải là một khởi đầu tốt vì bạn sẽ cần những điều đó khi cập nhật authorized_keys. 2. Bạn chưa đề cập tại sao tạo khóa mới tốt hơn thay đổi mật khẩu trên cũ. 3. Bạn đưa ra các giả định về HĐH, câu hỏi không được hỗ trợ.
kasperd
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.