Как сделать так, чтобы PPK, защищенный парольной фразой, прекратил запрашивать пароль в TortoiseHG через TortoisePlink и KeyRing?
Решено, см. Последнее редактирование
У меня есть репозиторий SourceForge, и я правильно установил там свой SSH-ключ. Работает нормально. Но когда я использую TortoiseHG для отправки своих модификаций в хранилище, меня постоянно спрашивают пароль для моего PPK (так как я его защищал).
Я рассказываю Mercurial о моем ППК так:
[ui] ssh = tortoiseplink.exe -ssh -i "c: \ Users \ my_user \ SSH \ my_user.ppk"
Но он продолжает приставать ко мне с паролем для ППК. Я знаю об этом расширении KeyRing для Mercurial, но работает ли оно с PPK?
Затем...
Это инструмент Pageant с TortoiseHG. Очевидно, вы указываете TortoiseHG использовать его, указав -agent, например так:
[ui] ssh = tortoiseplink.exe -ssh -i "c: \ Users \ my_user \ SSH \ my_user.ppk" -agent
Я добавил свой ключ в Pageant, но когда я синхронизируюсь с TortoiseHG, он по- прежнему запрашивает парольную фразу моего PPK, хотя я уже упоминал об этом, когда я добавил PPK в Pageant.
И еще одна вещь, которая меня раздражает, это то, что Pageant "забывает" все ключи при перезапуске программы. Так что это бесполезно.
В любом случае, я мог бы использовать это расширение KeyRing, чтобы добавить мой PPK в TortoiseHG и сохранить где-нибудь пароль?
Если нет способа решить эту проблему, я думаю, что я просто буду использовать незащищенный PPK и все...
ПОСЛЕДНЕЕ РЕДАКТИРОВАНИЕ:
Это вывод отладочной информации, который я получаю, когда пытаюсь выполнить принудительную передачу с помощью инструмента TortoiseHG Sync, настроенного, как указано выше.
% hg - репозиторий C:\Projects\MyProject push --debug ssh://echysttas@hg.code.sf.net/p/myproject/code
pushing to ssh://echysttas@hg.code.sf.net/p/myproject/code
running "c:\Program Files\TortoiseHg\TortoisePlink.exe" -agent echysttas@hg.code.sf.net "hg -R p/myproject/code serve --stdio"
sending hello command
sending between command
здесь я получаю запрос пароля, который я отменяю, потому что я не хочу повторять свой пароль
нет подходящего ответа от удаленного hg [команда возвратила код 255 пн 19 ноя 20:43:14 2012]
ПОСЛЕДНЕЕ РЕДАКТИРОВАНИЕ 2:
Я заметил, что некоторые примеры используют plink.exe вместо TortoisePlink.exe. Ну, хорошо, я попробовал с plink.exe (непосредственно с сайта Putty). Это дало многообещающие результаты...
sending hello command
sending between command
remote: Passphrase for key "rsa-key-20121118":
remote: Passphrase for key "rsa-key-20121118":
Но тогда он застрял здесь.
ПОЗЖЕ РЕДАКТИРОВАТЬ 3
Удивительно смешная находка::- Д.
Он застрял, потому что я вызывал TortoiseHG Sync из невысокого Explorer, но я запустил Pageant из повышенного Total Commander. Я использую UAC на моем Windows 7, и это вызвало проблему.
Если Pageant запускается с правами администратора Total Commander, то оттуда также должна быть запущена синхронизация TrtoiseHG! Если это так, это работает! Это также работает, если я запускаю Pageant из обозревателя без повышенных прав и также выполняю синхронизацию оттуда.
Готово!
Ленивый барсук Я все еще награждаю вас ответом, потому что вы были чем-то, НО ленивым, и вы проявили интерес и помогли мне. Хотя "это работает на моей машине", на самом деле не является ответом, это наверняка заставило меня задуматься, и ваши многочисленные слова и описания стоят той славной зеленой галочки, а?:D.
1 ответ
Ну, я могу работать с конкурсом, не спрашивая о пароле больше одного раза
моя линия ssh
ssh = "c:\Program Files\_Tools\TortoiseHg\TortoisePlink.exe"
и запуск Pageant (с загруженным закрытым ключом /PuTTY-User-Key-File/) даст мне возможность общаться с репо без повторной аутентификации
Примечание 1: брелок для ключей в вашем случае совсем не помогает, отладка функциональности театрализованного представления с чистым ssh-соединением (ssh или plink)
Примечание 2: Для запуска Pageant с ключом (нужен только пароль) вы можете использовать расширенную командную строку
Pageant может автоматически загрузить один или несколько закрытых ключей при запуске, если вы предоставите их в командной строке Pageant. Ваша командная строка может выглядеть так:
C:\PuTTY\pageant.exe d:\main.ppk d:\secondary.ppk
Если ключи хранятся в зашифрованном виде, Pageant запросит парольные фразы при запуске.
Если Pageant уже запущен, этот синтаксис загружает ключи в существующий Pageant.
Добавить
Пробовал пуш с моими текущими ssh-настройками для TortoiseHG 2.6 (XP SP3 x86), Mercurial repo
c:\TEMP\Fiver>hg push sf
pushing to ssh://bigbadger@hg.code.sf.net/u/bigbadger/code
searching for changes
remote: adding changesets
remote: adding manifests
remote: adding file changes
remote: added 7 changesets with 39 changes to 19 files
remote: <Repository /hg/u/bigbadger/code> refresh queued.
Локальное репо hgrc
[paths]
...
sf = ssh://bigbadger@hg.code.sf.net/u/bigbadger/code
Закрытый ключ загружен в Pageant, открытый ключ зарегистрирован на SF, в моем профиле
Mercurial.ini (соответствующая часть)
[ui]
merge = <irrelevant>
username = <irrelevant>
ssh = "c:\Program Files\_Tools\TortoiseHg\TortoisePlink.exe"
(обратите внимание, ни один из дополнительных аргументов для TortoisePlink)
и ничего более особенного не было сделано
Скриншот чистого THG push с выводом журнала
Журнал хорошего сеанса связи + театрализованного представления для SF-SSH
>Plink.exe -v -agent bigbadger@hg.code.sf.net
Looking up host "hg.code.sf.net"
Connecting to 216.34.181.156 port 22
Server version: SSH-2.0-OpenSSH_5.3
Using SSH protocol version 2
We claim version: SSH-2.0-PuTTY_Release_0.62
Doing Diffie-Hellman group exchange
Doing Diffie-Hellman key exchange with hash SHA-256
Host key fingerprint is:
ssh-rsa 2048 86:7b:1b:12:85:35:8a:b7:98:b6:d2:97:5e:96:58:1d
Initialised AES-256 SDCTR client->server encryption
Initialised HMAC-SHA1 client->server MAC algorithm
Initialised AES-256 SDCTR server->client encryption
Initialised HMAC-SHA1 server->client MAC algorithm
Pageant is running. Requesting keys.
Pageant has 1 SSH-2 keys
Using username "bigbadger".
Trying Pageant key #0
Authenticating with public key "github/lazybadger" from agent
Sending Pageant's response
Access granted
Opened channel for session
Allocated pty (ospeed 38400bps, ispeed 38400bps)
Started a shell/command
Last login: Tue Nov 20 03:20:48 2012 from 85.249.33.17
Server sent command exit status 1
Disconnected: All channels closed
Welcome to hg.sourceforge.net
This is a restricted Shell Account
You cannot execute anything here.