Сейчас я использую msysgit из-за инструментов графического интерфейса, которые используют утилиты Putty Pageant и PLink, но я использую Cygwin в качестве общего терминала SSH. Я использовал ssh-agent на Cygwin, но это означает, что мне нужно ввести свои парольные фразы SSH-ключей для обоих менеджеров ключей SSH. Можно ли настроить все мои инструменты Unix-порта (msys, git, cygwin, Ruby Net: SSH и т. Д.) Для использования PLink / Pageant вместо ssh-agent? Кажется, именно для этого и был создан PLink, но я не могу найти документации о том, как это сделать.
Я также написал прокси между openssh и pageant, который я называю ssh-pageant. Это похоже на тот же подход, что и в шараде, но я об этом не слышал. Что ж, на случай, если у вас возникнут проблемы, я подумал, что вместо этого выкину ssh-pageant.
Я наткнулся шарада некоторое время назад, который заменяет ssh-agent и прокси на Pageant. В то время я не мог заставить его работать, и с тех пор у меня не было возможности поиграть с ним, но, возможно, стоит попробовать. Если вам повезет, напишите ответ и дайте мне знать, это было в моем списке дел целую вечность!
Вы хотите интегрировать ssh-agent и pageant, чтобы у вас было только одно хранилище ключей. Один из способов сделать это - использовать PuTTY в качестве терминала, держать ключи в конкурсном режиме, включить пересылку агента, запустить Cygwin sshd и ssh на localhost. Это даст вам среду, в которой ключи обслуживаются конкурсным просмотром через ssh-соединение с PuTTY - нет необходимости запускать ssh-agent.
Должно быть возможно сделать то же самое с Plink. Просто используйте параметр -A и используйте полученный параметр SSH_AUTH_SOCK в своих интерактивных сеансах Cygwin. Отказ от ответственности: я не пробовал это.
Изменить: теперь я пробовал это; он работает нормально. Я создал ярлык для PLINK:
"C:\path\to\PLINK.EXE" -A -ssh -l yournamehere localhost "echo $SSH_AUTH_SOCK; while :; do sleep 86400; done"
Затем в терминале Cygwin (я, конечно, использую PuTTYcyg):
export SSH_AUTH_SOCK=/tmp/ssh-crYQh24AMq/agent.3964
ssh-add -l
Кажется, отлично работает, но по-прежнему требуется локальный sshd.
Что будет действительно Замечательно иметь агента, совместимого с openssh, который напрямую связывается с хранилищем ключей конкурса, но этого не произойдет, если кто-то не напишет такого зверя. Я изучал это много месяцев назад, и это показалось мне больше проблем, чем того стоило, учитывая, что этот обходной путь достаточно прост.
Не могли бы вы пойти другим путем и использовать puttycyg?
[http://code.google.com/p/puttycyg/]
Таким образом, у вас будет шпатлевка в качестве терминала cygwin.
Я бы предложил то же самое (используйте шпатлевку), но просто используйте шпатлевку, поскольку она лучше интегрируется с pagent и plink, я использую ее вместе с msysgit, но использую git bash, предоставляемую msysgit, и все будет в порядке, это немного утомительное переключение между консолями, но разделение тоже может быть хорошим
Другой способ сделать это.
Добавьте эту строку в самый верх .bash_profile
exec ssh-agent /usr/bin/bash
Затем добавьте свои ключи внизу .bashrc
ssh-add ~/.ssh/myprivate