macOS 10.12 Sierra sẽ không quên cụm mật khẩu ssh keyfile của tôi


25

Sau khi tạo id-rsatệp khóa được mã hóa mới với ssh-keygenvà sử dụng lần đầu tiên, tôi không thể lấy macOS để quên cụm mật khẩu. Điều này tương tự như cách làm cho OS X không nhớ câu hỏi mật khẩu khóa ssh nhưng tệ hơn.

Tôi đã thử khởi động lại, giết chết ssh-agent, khóa tất cả các móc khóa của mình nhưng dường như nó vẫn được lưu trữ ở đâu đó. Tuy nhiên, tôi không thể tìm thấy nó trong bất kỳ móc khóa nào. Điều này dường như rất không an toàn. Các câu trả lời cho mật khẩu khóa riêng của SSH không bao giờ bị xóa bằng Keychain / ssh-agent cũng không có ích.

Trong thực tế, hộp thoại đã từng xuất hiện hỏi bạn có muốn lưu cụm mật khẩu hay không dường như không tồn tại nữa.


Bạn đã kiểm tra xem nó thực sự được mã hóa chưa?
John Keates

Vâng. Khá chắc chắn rằng nó giống như ssh yêu cầu cụm mật khẩu trong lần đầu tiên tôi sử dụng nó. Ai đó thực sự có thể tái tạo điều này?
hogliux

Chà, nó cũng hoạt động theo cách đó với thiết lập của tôi, đó là cách ssh / ssh-agent được cấu hình.
John Keates

Điều đó đúng nếu bạn nhấp vào hộp kiểm để nói với macOS để lưu cụm mật khẩu trong móc khóa. Tuy nhiên, nếu bạn không nhấp vào hộp kiểm đó, macOS sẽ luôn yêu cầu cụm mật khẩu. Nhưng ngay cả khi bạn đã nhấp vào nó, bạn luôn có thể xóa nó một lần nữa trong tiện ích móc khóa. Vì Sierra, hộp thoại không xuất hiện nữa và không có mục nào trong tiện ích móc khóa.
hogliux

Đây là hộp thoại tôi đang nói về cái dường như không còn tồn tại nữa: dribin.org/dave/resource/pictures/ssh_leopard_dialog.png
hogliux

Câu trả lời:


27

Để tắt lưu trữ cụm mật khẩu trong khóa, bạn nên thêm các dòng sau vào tệp ~ / .ssh / config :

Host *
UseKeyChain no

Nếu bạn đã có cụm mật khẩu được lưu trong móc khóa, bạn có thể xóa nó bằng các lệnh:

cd ~/Library/Keychains/<UUID>/
sqlite3 keychain-2.db 'delete from genp where agrp="com.apple.ssh.passphrases"'

Nếu bạn muốn có một hành vi như trong OS X El Capitan hoặc trước đó (nghĩa là cụm mật khẩu được lưu trữ cho đến khi đăng xuất hoặc khởi động lại) chỉ cần thêm vào ~ / .ssh / config:

AddKeysToAgent yes

Bạn không cần phải bắt đầu ssh-agent.


1
Câu trả lời này vĩnh viễn giải quyết vấn đề! Vì vậy, tôi đánh dấu đây là câu trả lời đúng. Cảm ơn bạn!
hogliux

đề nghị chỉnh sửa: thay đổi Library/Keychains/<UUID>/để ~/Library/Keychains/<UUID>/rõ ràng :)
Mohamed Hafez

đề nghị chỉnh sửa được chấp nhận :)
mbamac

20

Nhờ Clive, tôi hiểu rõ hơn về 'tính năng' mới này. Khi bạn nhập cụm mật khẩu, Sierra sẽ thêm nó vào Keychain nhưng không phải cho tác nhân ssh. Nếu danh tính của bạn không có trong ssh-agent, không có cách nào để quản lý nó ssh-add. Để quản lý (ví dụ: xóa) danh tính của bạn khỏi Keychain, bạn cần thêm danh tính của mình ssh-agentbằng cách sử dụng ssh-add. Khi bạn đã thêm danh tính của mình, ssh-agentbạn có thể sử dụng ssh-add -K -dđể xóa nó khỏi cả hai ssh-agentvà Keychain. Nếu bạn muốn danh tính của mình được thêm vào ssh-agent mỗi khi bạn sử dụng ssh add:

AddKeysToAgent yes

để của bạn .ssh/config. Điều này sẽ đảm bảo rằng ssh-agentluôn luôn có danh tính của bạn.


Chỉ là một theo dõi. Nếu bạn thêm 'UseKeyChain no' vào .ssh / config, nó sẽ giữ cho Keychain không thêm cụm mật khẩu của bạn. Bạn muốn giữ 'AddKeysToAgent yes' trong ssh-agent sẽ giữ cụm mật khẩu của bạn cho đến khi bạn khởi động lại hoặc sử dụng ssh-add -d.
Gene Frenkler

Lưu ý điều này yêu cầu sử dụng OpenSSH do Apple vận chuyển. Bản vá này không được bao gồm trong sản xuất bia tại nhà kể từhomebrew/dupes/openssh: stable 7.3p1
Ryan Gibbons

3
ssh-add -K -d

Điều này có thể loại bỏ cụm mật khẩu được lưu trữ trước đó trong móc khóa. Kể từ macOS 10.12 Sierra, để tránh cụm mật khẩu được lưu trong móc khóa một lần nữa, hãy đảm bảo thực hiện ssh-addtrước.


Vâng. Điều này được sử dụng để làm việc trên các phiên bản trước của macOS Sierra. Nhưng không làm việc nữa. macOS Sierra vẫn còn nhớ cụm mật khẩu.
hogliux

1
ĐƯỢC. Điều tra thêm. Nó sẽ quên nó một lần nhưng nó sẽ quay trở lại vào móc khóa sau khi sử dụng nó ở bất cứ đâu (ssh, scp, git, v.v.). Một số người lạ gửi email trực tiếp cho tôi và phát hiện ra rằng cụm mật khẩu dường như được lưu trữ trong ~ / Library / Keychains / <SOME-UUID> /keychain-2.db. Nhưng ngay cả khi khóa móc khóa đăng nhập của tôi (và tất cả các móc khóa khác), os x sẽ không yêu cầu mật khẩu móc khóa của tôi khi truy cập cụm mật khẩu. Điều đó thực sự không có vẻ đúng.
hogliux

Thật vậy, dường như ở Sierra, cụm mật khẩu đang được lưu ở vị trí móc khóa đó chứ không phải là móc khóa Đăng nhập thông thường.
m1keil
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.