OSX ssh-агент: немає вставлення пароля та проблема з PKCS №8?


37

Я використовую ssh на своїй машині та створив довгу непридатну для людини парольну фразу, яка зберігається в моєму менеджері паролів. Щоразу мене зводить з розуму, що я не можу вставити вікно, зображене нижче. Я знаю Remember password in my keychainваріант і використовую його. Іноді мені доводиться вводити нове. Чому я не можу вставити в поле пароля?

Те саме стосується діалогового вікна, яке з’являється під час підключення зашифрованих дисків.

ssh-вікно агента

Деякі оновлення:

  1. Я дізнався, як я можу обійти діалогове вікно: просто скористайтеся ssh-add -K ~/.ssh/id_rsa, а потім можу вставити парольну фразу в термінал.
  2. Як згадував mattmcmanus, мій ключ шифрується, використовуючи pkcs8який був зламаний на ssh-агент Yosemite. Це не пов’язано з вищезазначеною проблемою, але це сталося зі мною одночасно (читайте тут ).
  3. використання ssh-add досі не виправляє це для зашифрованих дисків.

Ви повинні прийняти одну з хороших відповідей нижче. Вам також слід уникати задавати кілька запитань в одному дописі.
— Ален О'Деа

1
@ AlainO'Dea По-перше, так, я повинен, це старе питання, і я забув про нього. Щодо другого, щоправда: на момент запитання було не ясно, що виникне друге питання (зламаний ПККС), дивіться історію редагування.
— joni

Відповіді:


22
  1. Діалогове вікно для SSH-агента може бути обійдено шляхом додавання ключа в консолі / терміналі: ssh-add ~/.ssh/id_rsa. Потім можна вставити пароль у термінал. Крім того, додавши -Kопцію, щоб ssh-addзберегти її в брелок, згідно коментаря Олівера Лакана.
  2. Як сказав mattmcmanus, схоже , id_rsaшифрування за допомогою PKCS порушено на ssh-агенті OSX Mavericks. Швидке вирішення полягає в дешифруванні файлу ключів та зашифруванні його за допомогою стандартної процедури ssh (метод виведення ключа: MD5 ...):

mv id_rsa id_rsa.pkcs
openssl rsa -in id_rsa.pkcs -out id_rsa
# enter passphrase to decrypt
chmod 0600 id_rsa
ssh-keygen -f id_rsa -p
# enter passphrase to encrypt again

3
Незважаючи на те, що відповідь Джоні чудова, я рекомендував би ssh-add -K ~/.ssh/id_rsa"Зберігати паролі у своєму брелоку" ssh-add --help. Це не дозволить вам повторно запускати ssh-addкожен раз, коли ви відкриваєте нову вкладку оболонки або під час перезавантаження машини.
— Олів'є Лакан

2

Це ключ PKCS № 8, і ви перебуваєте на мавериках? Якщо так, то, здається, повністю розпалено. Не впевнений, що рішення є ще.


1
чому це повинно бути? Поки що проблема полягає лише в тому, що поле пароля в діалоговому вікні не приймає вставлення. Це вже існувало на 10,8, але через оновлення до 10,9 мені доведеться знову вводити пароль.
— joni

Гаразд, ти, здається, маєш рацію ... поглянь на мою власну відповідь.
— joni

2

У Mac OS X El Capitan команда ssh-add може це зробити за допомогою параметра -K :

$ ssh-add -K ~/.ssh/id_rsa
Enter passphrase for /Users/your.username/.ssh/id_rsa:

Ви можете вставити свій пароль у цей рядок за допомогою ⌘-V .

Сеанс для цього виглядає приблизно так:

$ ssh-add -K ~/.ssh/id_rsa
Enter passphrase for /Users/your.username/.ssh/id_rsa:
Passphrase stored in keychain: /Users/your.username/.ssh/id_rsa
Identity added: /Users/your.username/.ssh/id_rsa (/Users/your.username/.ssh/id_rsa)

Відповідний уривок SSH-ADD (1), розроблений man ssh-add :

-K При додаванні ідентифікацій кожна пропускна фраза також буде зберігатися у вашому брелоку. При видаленні тотожностей з -d кожна парольна фраза буде видалена з вашого брелка.

ПРИМІТКА ІНФОСЕК : Ваш пароль не відображатиметься в оболонці, але буде відкритий для всіх запущених програм через буфер обміну. Автотипове рішення було б більш безпечним.


1

Ви можете запустити такий сценарій у редакторі AppleScript:

tell application "System Events" to tell process "SecurityAgent"
    set value of text field 2 of scroll area 1 of group 1 of window 1 to "pa55word"
    click button 2 of group 2 of window 1
end tell

1
дякую, це допоможе для діалогових вікон "зашифрованих дисків". Але чому яблуко відключило це поле для вставки ???
— joni

Зручно, але так, не думаю, що це вирішує проблему PKCS № 8, де навіть якщо ви ввели правильний пароль, він говорить про неправильну парольну фразу.
— Боб Аман

Не має сенсу. Тепер ваш найпотаємніший пароль відкритий для всіх. Ось чому TS використовує диспетчер паролів, щоб її паролі були централізованими та високо захищеними.
— whaefelinger

1
Не працює на El Capitan. Спочатку він просить редактор сценаріїв отримати допоміжний контроль, System Events got an error: Script Editor is not allowed assistive access. як тільки це дозволено в налаштуваннях системи | Безпека та конфіденційність я отримуюSystem Events got an error: Can’t get window 1 of process "SecurityAgent". Invalid index.
— Alain O'Dea

1

У мене була така ж проблема. Знайшовши це запитання, я продовжував шукати і шукав відповідь в іншому місці. Це давнє запитання, але воно не має прийнятих відповідей і все ще знаходиться у списках пошуку. (не впевнений у цьому етикетному стилі).

RE не в змозі скопіювати / вставити: Це, мабуть, дизайн. Намір полягає в тому, щоб запобігти будь-якому доступу до поля з буфера обміну, щоб запобігти зловмисній програмі зловмисної програми. Я думаю, що слід вставляти (а не різати), але, можливо, є якась технічна причина.

Що стосується матеріалів ssh-агента (як мінімум) Yosemite, -Kопція ssh-add -K ~/.ssh/blahвиконує те, що ви хочете - введіть пароль один раз, він зберігається у вашому брелоку, і ssh-агент буде прозоро розблокований для вас. Щоб спробувати бути більш безпечним, я кладу свої SSH-фрази в окремий брелок, який періодично замикається.


Будь-який шанс ви могли поділитися посиланням на знайдену відповідь?
— Джон Керні

Вибач за це! Щодо матеріалу ssh-агента, я натрапив на developer.apple.com/library/mac/documentation/Darwin/Reference/…
— PerilousApricot

0

Використання пивоварення openssl та openssh виправляє проблему.

brew update
brew install openssl
brew link openssl --force
brew install openssh

# confirm correct bins are being used
# both should be located in /usr/local/bin
which openssl
which openssh

# add key back to keychain
ssh-add ~/.ssh/id_rsa

Я не впевнений, що сила зв'язання opensl щось порушує Mavricks. Поки що я не помітив жодних проблем.


1
Не існує (більше а) brewформули для openssh.
— Адам Літер

Однак все brew tap homebrew/dupesж є. Однак, ці дії, схоже, не вирішили цю проблему для мене.
— Боб Аман

@ simple10 Ця відповідь дає мало значення. Ви повинні принаймні надати версію openssl / openssh, яка вирішує проблему. Додатково уточнюйте, чому це було б так.
— whaefelinger
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.