Могу ли я использовать PLink и Pageant с Cygwin ssh?
Сейчас я использую msysgit из-за инструментов с графическим интерфейсом, которые используют утилиты Pageant и PLink от Putty, но я использую Cygwin в качестве обычного терминала SSH. Я использовал ssh-agent в Cygwin, но это означает, что я должен ввести свои пароли ключевых слов SSH для обоих менеджеров ключей SSH. Можно ли настроить все инструменты Unix-порта (msys, git, cygwin, Ruby Net:SSH и т. Д.) Для использования PLink/Pageant вместо ssh-agent? Кажется, именно для этого и был создан PLink, но я не могу найти документацию о том, как это сделать.
6 ответов
Я также написал прокси между openssh и pageant, который я называю ssh-pageant. Похоже, почти такой же подход, как шарада, но я не слышал об этом. Ну, на случай, если у вас возникнут проблемы, я решил выбросить ssh-pageant, чтобы попробовать вместо этого.
Некоторое время назад я натолкнулся на шараду, которая заменяет ssh-agent и прокси на Pageant. В то время я не мог заставить его работать, и с тех пор у меня не было возможности поиграть с ним, но, возможно, стоит попробовать. Если вам повезет, пожалуйста, отправьте ответ и дайте мне знать, это было в моем списке вещей, чтобы сделать целую вечность!
Вы хотите интегрировать ssh-agent и pageant, чтобы у вас было только одно хранилище ключей. Один из способов сделать это - использовать PuTTY в качестве терминала, сохранить ключи в Pageant, включить переадресацию агента, запустить Cygwin sshd и ssh на localhost. Это создаст среду, в которой ключи обслуживаются Pageant через соединение 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.
Еще один способ сделать это.
Добавьте эту строку в самый верх.bash_profile
exec ssh-agent /usr/bin/bash
Затем добавьте свои ключи внизу.bashrc
ssh-add ~/.ssh/myprivate
Я бы предложил то же самое (используйте putty), но просто используйте putty, поскольку он лучше интегрируется с pagent и plink, я использую его вместе с msysgit, но использую git bash, предоставляемый msysgit, и это будет хорошо, это немного утомительное переключение между консолями, но разделение тоже может быть хорошим