2013-03-04 2 views
0

Я пытаюсь запустить ssh-add -L (или любая другая пунктирная опция), а zsh возвращает zsh: ошибка синтаксического анализа около` -L'. Это первый раз, когда я вижу, что zsh делает это, и он не делает этого с какой-либо другой командой.zsh ssh-add -L ошибка синтаксического анализа рядом с `-L '

Любые идеи?

ответ

1

Первое, что нужно выяснить, является ли ssh-add функцией псевдонима или оболочки, а не бинарным исполняемым файлом /usr/bin/ssh-add.

Во-вторых, попробуйте выполнить ту же команду в сеансе ZSH без вашей настраиваемой конфигурации ZSH. Чтобы получить чистую окружающую среду, запустите

env -i TERM=$TERM LC_ALL=$LC_ALL LANG=$LANG zsh -f 

Тогда попробуйте ssh-add -L снова и дайте нам знать, что вы видите.

Кроме того, пожалуйста, напишите вывод из следующих действий:

uname -a 
zsh --version 
+0

Хорошо, спасибо. Я идиот. Я добавил эту строку в свой .zshrc: alias ssh-add = 'ssh-add || {eval 'ssh-agent' && ssh-add} ', потому что мне было больно создавать мой ssh-агент, когда его здесь не было. Но это делает мой ssh-add неспособным принимать параметры командной строки. Мне нужно подумать о чем-то умнее. \ ssh-add -L работал отлично. –

+0

Если вы используете агент локально на OS X или Ubuntu, просто позвольте собственной цепочке ключей системы заботиться о том, чтобы запустить агент для вас. Вам нужно только импортировать каждый ключ один раз. Затем вы настраиваете, какой ключ должен использоваться для каждого удаленного хоста в '~/.ssh/config' (возможно использование подстановочных знаков для имен хостов). Наконец, чтобы иметь доступный ssh-агент на удаленном хосте, добавьте опцию 'ForwardAgent yes' к тем хостам, которым вы доверяете. – simonair

Смежные вопросы