Могу ли я использовать PLink и Pageant с Cygwin ssh?


26

Сейчас я использую msysgit из-за инструментов с графическим интерфейсом, которые используют утилиты Pageant и PLink от Putty, но я использую Cygwin в качестве обычного терминала SSH. Я использовал ssh-agent в Cygwin, но это означает, что я должен ввести свои пароли ключевых слов SSH для обоих менеджеров ключей SSH. Можно ли настроить все инструменты Unix-порта (msys, git, cygwin, Ruby Net: SSH и т. Д.) Для использования PLink / Pageant вместо ssh-agent? Кажется, именно для этого и был создан PLink, но я не могу найти документацию о том, как это сделать.


Ответы:


17

Я также написал прокси между openssh и pageant, который я называю ssh-pageant . Похоже, почти такой же подход, как шарада, но я не слышал об этом. Ну, на случай, если у вас возникнут проблемы, я решил выбросить ssh-pageant, чтобы попробовать вместо этого.


11

Некоторое время назад я натолкнулся на шараду , которая заменяет ssh-agent и прокси на Pageant. В то время я не мог заставить его работать, и с тех пор у меня не было возможности поиграть с ним, но, возможно, стоит попробовать. Если вам повезет, пожалуйста, отправьте ответ и дайте мне знать, это было в моем списке вещей, чтобы сделать целую вечность!


Я могу подтвердить, что это работает. (Как может @Nightfly ниже)
Кристофер Гальпин

2
Я хотел бы только добавить , что , прежде чем строить пакет убедитесь , что у вас есть следующие пакеты в дополнение к умолчанию Cygwin установки: make, gcc-core, keychain, psmiscи, конечно же openssh. Таким образом, если вы будете следовать очень подробным инструкциям из файла README, вы не получите никаких ошибок
Александр Погребняк

5

Вы хотите интегрировать 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 агент, который напрямую связывается с хранилищем ключей конкурса, но этого не произойдет, если кто-то не напишет такого зверя. Я изучил это много лун назад, и это казалось большим количеством проблем, чем стоило, учитывая, что этот обходной путь достаточно прост.


ммм, это совсем не плохая идея. Это, наверное, как я пойду. Благодарность! А что касается вашего openssh-совместимого агента, да, это именно то, что я надеялся предоставить plink. Кажется, что это будет довольно ценный кусок кода, так как очень много работы делается для того, чтобы сделать программное обеспечение (например, git) совместимым как с openssh, так и с plink. Почему бы просто не иметь слой перевода? Похоже, "способ Unix", чтобы сделать это. :)
Джерф

2

Не могли бы вы пойти другим путем и использовать puttycyg?

[ http://code.google.com/p/puttycyg/]

Таким образом, у вас есть замазка в качестве терминала Cygwin.


Я не уверен, каковы будут последствия использования putty для моих скриптов Cygwin. Я не совсем понимаю, где Puttycyg вставляет себя, я думаю. Я посмотрю на это - спасибо!
Джерф

0

я бы предложил то же самое (используйте putty), но просто используйте putty, поскольку он лучше интегрируется с pagent и plink, я использую его вместе с msysgit, но использую git bash, предоставляемый msysgit, и это будет хорошо, это немного утомительное переключение между консолями, разделение тоже может быть хорошим


Я не могу покинуть Cygwin, к сожалению. Я зависел от некоторых пакетов, которые он предоставляет, а не только от простого консольного ssh. У Msys есть свои сильные стороны (например, «лучшая» интеграция со многими инструментами Windows и версия Ruby для Windows), но было бы очень трудно перенести мои скрипты на основе Cygwin с помощью инструментов, доступных на Msys.
Джерф

0

Еще один способ сделать это.

Добавьте эту строку в самый верх .bash_profile

exec ssh-agent /usr/bin/bash

Затем добавьте свои ключи внизу .bashrc

ssh-add ~/.ssh/myprivate

Как эта ссылка на Pageant? Вопрос был о том, как не использовать ssh-agentв дополнение к этому.
Тобиас Кинцлер
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.