.ssh / config: “Поганий варіант конфігурації: UseKeychain” у Mac OS Sierra 10.12.6


92

Я намагаюся налаштувати свою конфігурацію ssh на Mac (Mac OS Sierra 10.12.6) таким чином, щоб вона зберігала парольну фразу для мого ключа ssh у ланцюжку ключів. Раніше я міг це робити за допомогою

ssh-add -K ~/.ssh/id_rsa

Але останнім часом це, здається, вже не працює. Після цієї статті , здається, змінилася поведінка конфігурації ssh у Mac OS> 10.12.2, і рекомендований спосіб вирішити цю проблему - це додати UseKeychain yesдо конфігурації ssh. Ось мій .ssh/configрозділ Host *:

Host *
  Port 22
  ServerAliveInterval 60
  ForwardAgent yes
  IdentityFile ~/.ssh/id_rsa
  AddKeysToAgent yes
  UseKeychain yes

При спробі ssh до іноземного хоста я отримую таке повідомлення про помилку:

$ ssh my-host
/Users/USER/.ssh/config: line 16: Bad configuration option: usekeychain

Будь-які ідеї, чому це відбувається, і як я можу це виправити? Дякую!

Відповіді:


171

Спробуйте вказати інший варіант, а саме, IgnoreUnknownяк показано нижче:

Host *
  IgnoreUnknown UseKeychain
  UseKeychain yes

Ви можете знайти більше інформації про це тут .

Якщо у вас вже є IgnoreUnknownзначення, використовуйте значення, розділені комами

Host *
  IgnoreUnknown AddKeysToAgent,UseKeychain
  AddKeysToAgent yes
  UseKeychain yes

2
Обійдіть файл конфігурації ssh -F /dev/null ...тимчасово, він працює для мене.
Ітачі

1
Додавання IgnoreUnknown UseKeychainвсе ще не працює для мене, тому я видаляю UseKeychain yesвзагалі, і воно працює. Не впевнений, що це найкращий підхід.
Хенк Чан

Це рішення спрацювало для мене, але я не розумію, чому ця зміна раптом? Я лише заходжу до свого облікового запису DigitalOcean.
anjanesh

Я видалив усі параметри і залишив файл Host and IdentityFile. Github каже використовувати ці параметри, але вони не працюють і для мене. Дякую.
Natus Drew

51

Прийнята відповідь допомогла мені, але не повністю вирішила мою проблему, оскільки у мене було кілька варіантів, які були поганими. Ось приклад того, як це може виглядати, якщо у вас є ця проблема:

Host *
  IgnoreUnknown AddKeysToAgent,UseKeychain
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_rsa

Просто хочу залишити це тут: у мене були проблеми з віддаленим підключенням, і це виявилося проблемою. Проблема була створена за допомогою інструменту Sourcetree від Bitbucket, який я видалив, але залишив залишки, що перешкоджали віддаленому з’єднанню
Коннор,

Дякую! Працював на MacOS моджаве 10.14.6
бренден

Чому це працює? У мене була та сама проблема, і ця відповідь її виправила, але я досі не знаю, чому це спрацювало, і чому у мене була проблема.
Нішант Мехта,

2

Я просто прокоментував рядок і scp / ssh знову почав працювати для мене.


1

Замість ssh-add введіть 'open .ssh / id_rsa' і додайте його в брелок

Параметр UseKeychain ніколи не виглядав настільки поганим у моєму конфігурації, але на початку, перед будь-яким іншим хостом, я мав таке

Host *
UseKeychain yes 

Host (...)

FYI, я думаю, що це неправильний порядок. Якщо ви напишете це так, ваші *правила будуть проігноровані. man ssh_configговорить: "Оскільки використовується перше отримане значення для кожного параметра, то більше оголошень, що відповідають хосту, слід давати біля початку файлу, а загальні значення за замовчуванням в кінці."
Телемах

FYI, у мене це було майже десять років з десятками серверів і ніколи не виникало проблем. Я щодня отримую стільки серверів. Однак, якщо хтось знайде реальну проблему з цим конфігурацією, можливо, це буде все.
Рікардо Мендес,

0

Це столиця -K спробуйте малі регістри -k !!

ssh-add -k ~/.ssh/id_rsa

Enter passphrase for /Users/tom/.ssh/id_rsa:
Identity added: /Users/tom/.ssh/id_rsa (/Users/tom/.ssh/id_rsa)

ssh-addмає -Kопцію принаймні на macOS. man ssh-add:-K When adding identities, each passphrase will also be stored in the user's keychain. When removing identities with -d, each passphrase will be removed from it.
uasi

0

У мене була та сама проблема, і я зрозумів, що коли починав генерувати ключ, дотримуючись інструкцій. Перший крок - це.

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

Я не змінив електронну адресу, але, звичайно, забув це зробити: D. Тож не забудьте про цей крок, і все буде добре.

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