Плохая конфигурация: не может ssh


12

Как описано во многих других постах, после обновления до MacOS Sierra я изменил конфигурационный файл ssh следующим образом:

Host me
HostName login.hpc.ugent.be
User vscxxxxx
Port 22

Host *
  AddKeysToAgent yes
  UseKeychain yes

Тем не менее я получаю следующую ошибку:

$ssh -Y vscxxxxx@login.hpc.ugent.be
/Users/manfredo/.ssh/config: line 8: Bad configuration option: usekeychain
/Users/manfredo/.ssh/config: terminating, 1 bad configuration options

Что мне не хватает?


Каков выход ssh -Vи type ssh? Или вы знаете, установлен ли у вас не ssh по умолчанию?
Яри ​​Кейнянен

OpenSSH_7.3p1, OpenSSL 1.0.2k 26 января 2017
Манфредо

Ответы:


10

Просто удалите UseKeychain yesстроку из вашей конфигурации. Обновление сломало существующую настройку, удалив эту опцию.


Вероятно, это неверно, если мы говорим о ssh, предоставленном системой. Какое обновление сломало это? Или вы имеете в виду какое-то не-Apple обновление ssh? Я нахожусь на современной macOS и имею UseKeychain yesили не usekeychain yesдаю ошибок.
Яри ​​Кейнянен

Это на самом деле работает. Я действительно не знаю, что заставило его перестать работать, единственное, что я сегодня обновил свои пакеты macport.
Манфредо

4

Документация Apple по обновлениям OpenSSH в macOS 10.12.2 гласит:

Если вы делитесь своей конфигурацией ssh ​​с системами, использующими более старые версии OpenSSH, которые не понимают опцию UseKeychain, вы можете указать опцию IgnoreUnknown, чтобы ваша конфигурация была совместимой как с новыми, так и со старыми версиями.

Итак, хитрость в том, что в вашем конфигурационном файле ssh добавьте IgnoreUnknown UseKeychainкак показано ниже:

Host *
  AddKeysToAgent yes
  IgnoreUnknown UseKeychain
  UseKeychain yes

0

Если вы укажете /usr/bin/sshдля команд, это работает. Путь по умолчанию в 10.12 ставит /usr/local/binсверху, поэтому любая другая версия sshне будет работать с этой опцией, так как она специфична для системы Mac.


Чтобы добавить к этому, просто nano ~/.bash_profileубедитесь, что /usr/binпрежде, /usr/local/binесли они вообще не включены в вашу $PATHдекларацию, просто добавьте их вместе в этом порядке. Нечто подобное , export PATH="~/bin:/usr/bin:/usr/local/bin/:$PATHто source ~/.bash_profileрешить это для меня
абв123
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.