Làm cách nào để thêm mật khẩu vào khóa riêng OpenSSH được tạo mà không có mật khẩu?


212

Tôi đã tạo khóa riêng OpenSSH bằng puttygen (và xuất nó ở định dạng OpenSSH). Làm cách nào tôi có thể đặt mật khẩu cho khóa hiện tại này (tôi biết cách tạo khóa mới bằng mật khẩu)?


13
Nếu bạn thấy bình luận này, vui lòng đánh dấu một trong những câu trả lời là được chấp nhận hoặc viết bình luận nói những gì họ bỏ lỡ. Cảm ơn!
Benjamin Atkin

1
Thêm cũng giống như thay đổi hoặc xóa: stackoverflow.com/questions/112394/ , có thể tương tự để thay đổi: serverfault.com/questions/50775/
trộm

Nếu bạn nhận được Bad passphrasemột id_ed25519khóa nhưng mật khẩu là chính xác, thì có lẽ bạn đang sử dụng cấp độ thấp ssh-keygenđể quản lý nó.
jww

Câu trả lời:


349

Hãy thử lệnh ssh-keygen -p -f keyfile

Từ trang người đàn ông ssh-keygen

 -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.

 -f filename
         Specifies the filename of the key file.

Thí dụ:

ssh-keygen -p -f ~/.ssh/id_rsa

5
Đối với những người muốn biết -f là gì: Nó chỉ định tệp đầu vào.
Neikos

4
//, @sigjuice, bạn vui lòng gửi một ví dụ, như thế $ ssh-keygen -p -f /Users/sigjuice/.ssh/id_rsanào? Điều này có thể giúp những người không biết cách phân biệt khóa công khai và khóa riêng và giúp họ bị ướt chân nhanh hơn.
Nathan Basan

Vì một số lý do, trên MacOS 10.14, điều này không định dạng tệp với Proc-Type: 4,ENCRYPTEDtiêu đề, không tương thích với một số ứng dụng kiểm tra cụm mật khẩu. Sau khi thử một vài cách để làm cho nó hoạt động, cách dễ nhất để khắc phục nó chỉ là làm điều tương tự bên trong một Docker container chạy Ubuntu và sau đó sao chép khóa trở lại máy Mac của tôi.
ryanbrainard

38

Sử dụng tùy chọn -p để ssh-keygen. Điều này cho phép bạn thay đổi mật khẩu thay vì tạo khóa mới.

Thay đổi mật khẩu như hiển thị sigjuice:

ssh-keygen -p -f ~/.ssh/id_rsa

Mật khẩu yêu cầu sẽ là mật khẩu mới. (Điều này giả sử bạn đã thêm khóa công khai ~/.ssh/id_rsa.pubvào các tệp ủy quyền của mình.) Kiểm tra với ssh:

ssh -i ~/.ssh/id_rsa localhost

Bạn có thể có nhiều khóa với các tên khác nhau cho các mục đích sử dụng khác nhau.


//, Bạn vui lòng hiển thị một ví dụ và cách kiểm tra xem tùy chọn đã hoạt động chưa, @BillThor?
Nathan Basan

Tôi không hiểu. Cụm mật khẩu được đặt, tôi thấy khi tôi cố gắng thay đổi lại. Nhưng khi tôi cố gắng đăng nhập vào máy chủ từ xa, nó không hỏi mật khẩu cụm mật khẩu này, tại sao?
Luka

1
Tốt rồi. Nó hỏi một lần mỗi phiên :) Không biết điều đó.
Luka

Điều này có nghĩa là bạn phải đăng xuất và đăng nhập lại? Đóng cửa sổ đầu cuối và mở lại nó không hoạt động đối với tôi.
Simon H

Bạn có thể gõ ssh-add -Dđể xóa danh tính lưu trữ của bạn. Sau đó, thử kết nối lại và nó sẽ hỏi bạn mật khẩu của bạn. Sử dụng ssh-add -lđể xem danh sách các danh tính được lưu trong bộ nhớ cache của bạn.
Scott Nedderman

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.