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.