2013-04-08 4 views
26

Итак, у меня есть такой сценарий, когда удаленный вызов будет сделан на целевой машине. Возможно, будет создано более одного вызова для генерации ключей ssh, и в этом случае скрипт будет зависать, когда он запрашивает перезапись (y/n).Как запустить ssh-keygen, чтобы он перезаписывался без запроса о наличии сертификата ключа?

Есть ли способ способ запросить неинтерактивную перезапись (или молча игнорировать) ключей, если найдена?

Там, кажется, не быть --force или --overWrite вариант в

man ssh-keygen 

, что я могу найти. Есть ли обоснование того, что он функционирует таким образом, или это ошибка, которую я должен сообщить авторам?

Любая помощь приветствуется.

+3

Интересно ... казалось бы, некоторые сторонники дистрибутивов решили отключить это. Глядя на http://www.dsm.fordham.edu/cgi-bin/man-cgi.pl?topic=ssh-keygen&sect=1, там ** есть ** флаг -o для перезаписи. Страницы man на centos 6.2 и debian squeeze не имеют опции, а ssh-keygen вызывается с -o barfs. – tink

+0

Stack Overflow - это сайт для вопросов программирования и разработки. Этот вопрос кажется вне темы, потому что речь идет не о программировании или разработке. См. [Какие темы можно задать здесь] (http://stackoverflow.com/help/on-topic) в Справочном центре. Возможно, лучше сказать [Суперпользователь] (http://superuser.com/) или [Unix & Linux Stack Exchange] (http://unix.stackexchange.com/). Также см. [Где я пишу вопросы о Dev Ops?] (Http://meta.stackexchange.com/q/134306) – jww

+0

@jww Этот комментарий опоздал на 4 года. Вопрос уже закрыт как вне темы. – NuclearPeon

ответ

42

Вы можете обойти эту проблему таким образом:

echo -e 'y\n'|ssh-keygen -q -t rsa -N "" -f ~/.ssh/id_rsa 

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

+0

echo -e 'y \ n' | ssh-keygen -q -t rsa -N "" -f ~/.ssh/id_rsa – NewPtone

+2

Он не выведет приглашение, если вы добавите '1>/dev/null' в конец :) – g33kz0r

+0

@ mihir6692 - Вероятно, вы должны добавить свой собственный ответ. – jww