macOS 10.12 Сьєрра не забуде мою парольну фразу ssh keyfile


25

Після створення нового зашифрованого id-rsaфайлу ключів за ssh-keygenдопомогою та вперше його використання, я не можу отримати macOS забути пароль. Це схоже на те, як змусити OS X не запам’ятовувати питання про парольну фразу ключа ssh, але ще гірше.

Я спробував перезавантажити, вбити ssh-agent, заблокувавши всі мої брелки, але все одно, здається, він десь зберігається. Однак я не можу знайти його в жодних брелоках. Це здається дуже небезпечним. Відповіді на пароль приватного ключа SSH, який ніколи не видаляється за допомогою Keychain / ssh-agent, також не допомагають.

Насправді, діалогове вікно, яке раніше з'являлося з запитанням, хочете ви зберегти парольну фразу чи ні, здається, вже не існує.


Ви перевіряли, чи він взагалі зашифрований?
Джон Кітс

Так. Досить впевнений, це так, як ssh запитує пароль, коли перший раз я його використовую. Чи може хтось насправді це відтворити?
hogliux

Що ж, це працює так само і з моєю установкою, це налаштовано ssh / ssh-agent.
Джон Кітс

Це вірно, якщо ви натиснете прапорець, щоб повідомити macOS про збереження парольної фрази у брелок. Однак якщо ви не натискаєте цей прапорець, macOS завжди повинен просити парольну фразу. Але навіть якщо ви натискали його, ви завжди могли знову його видалити в утиліті keychain. Оскільки Sierra, діалогове вікно більше не з’являється, і в ньому немає запису в утиліті keychain.
hogliux

Це діалогове вікно, про яке я говорю, схоже, вже не існує: dribin.org/dave/resources/pictures/ssh_leopard_dialog.png
hogliux

Відповіді:


27

Щоб відключити зберігання парольної фрази у брелоку, вам слід додати наступні рядки до файлу ~ / .ssh / config :

Host *
UseKeyChain no

Якщо у вас вже зберігається пароль у брелок, ви можете видалити його за допомогою команд:

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

Якщо ви хочете мати таку поведінку, як в OS X El Capitan або раніше (тобто пароль, який зберігається до виходу або перезавантаження), просто додайте до ~ / .ssh / config:

AddKeysToAgent yes

Вам не потрібно запускати ssh-агент.


1
Ця відповідь назавжди вирішує проблему! Тож я позначив це правильною відповіддю. Дякую!
hogliux

запропонував редагувати: змінити Library/Keychains/<UUID>/на ~/Library/Keychains/<UUID>/ясність :)
Мохамед Хафез

запропоновано редагування прийнято :)
mbamac

20

Завдяки Клайву я краще розумію цю нову «особливість». Коли ви вводите свою парольну фразу, Сьєрра додає її до вашого брелка, але не до ssh-агента. Якщо ваша особа не знаходиться в ssh-агенті, не можна керувати нею ssh-add. Щоб керувати (тобто видаляти) свою особу з Keychain, вам потрібно додати свою особу ssh-agent, використовуючи ssh-add. Після додавання вашої ідентичності ssh-agentви можете ssh-add -K -dвидалити її з обох ssh-agentі брелоків. Якщо ви хочете, щоб ваша особа була додана до ssh-агента щоразу, коли ви використовуєте ssh, додайте:

AddKeysToAgent yes

до вашого .ssh/config. Це забезпечить ssh-agentзавжди вашу особистість.


Просто наступне спостереження. Якщо ви додасте "UseKeyChain no" до свого .ssh / config, це не дозволить Keychain додавати вашу парольну фразу. Ви хочете зберегти "AddKeysToAgent так" у ssh-агенті, він зберігатиме вашу парольну фразу, поки ви не перезавантажите або не будете використовувати ssh-add -d.
Джин Френклер

Зауважте, це вимагає використання OpenSSH, що постачається Apple. Цей пластир не включений в домашню заварку станом наhomebrew/dupes/openssh: stable 7.3p1
Ryan Gibbons

3
ssh-add -K -d

Це може видалити паролі, які раніше зберігалися в брелоку. Оскільки macOS 10.12 Sierra, щоб уникнути повторної фрази, що зберігається у брелоку, спочатку обов'язково зробіть це ssh-add.


Так. Це використовувалося для роботи над попередніми версіями macOS Sierra. Але більше не працює. macOS Сьєрра все ще запам'ятовує парольну фразу.
hogliux

1
В ПОРЯДКУ. Більше розслідування. Він забуде це один раз, але після повернення в будь-яке місце (ssh, scp, git тощо) він повернеться назад до брелка. Якийсь незнайомий незнайомий чоловік надіслав мені електронну пошту і з'ясував, що парольна фраза, схоже, зберігається в ~ / Бібліотека / Брелки / <SOME-UUID> /keychain-2.db. Але навіть при блокуванні моїх брелоків для входу (та всіх інших брелоків) os x не запитає мого пароля брелока під час доступу до парольної фрази. Це насправді не здається правильним.
hogliux

Дійсно, здається, що в Сьєррі парольну фразу зберігають у тому місці брелка, а не у звичайному брелоку для входу.
m1keil
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.