Ключевая фраза ключа SSH работает в Windows, но не в Linux - PullRequest
31 голосов
/ 09 марта 2012

Я работаю над проектом в git.В Windows я использую расширения git для управления этим проектом, и для доступа к общедоступному репозиторию они дали мне ключ .ppk.Я загружаю его в расширение git с парольной фразой, которую мне дали, и она работает.

Теперь я установил виртуальную машину linux (ubuntu-32bit) и хочу также получить доступ с этой машины в хранилище..

Из другого потока, который я видел на этом сайте, я использую для клонирования репозитория следующую команду:

ssh-agent bash -c 'ssh-add /home/myHome/mykey.ppk; git clone git@serveraddress:project.git'

Затем оболочка говорит мне вставить фразу-пароль

Enter passphrase for /home/myHome/mykey.ppk:

Но когда я вставляю его, он говорит, что это плохая фраза-пароль.Я проверял это много раз, и я уверен, что я использую ту же фразу-пароль, что и в Windows.Так как я могу правильно использовать ключ в Linux?

Заранее спасибо за ваши ответы.

1 Ответ

60 голосов
/ 09 марта 2012

Клиент Linux SSH (обычно OpenSSH) не может прочитать формат PPK, используемый клиентом Windows SSH Putty. Вам необходимо сначала преобразовать данный ключ «PPK» в ключ OpenSSH. Установите «putty» в Linux и используйте инструмент командной строки puttygen:

$ sudo aptitude install putty
$ mkdir -p ~/.ssh
$ puttygen ~/mykey.ppk -o ~/.ssh/id_rsa -O private-openssh

Введите вашу фразу-пароль, и вы получите OpenSSH-совместимый ключ в стандартном месте ~/.ssh/id_rsa. После этого вы можете просто использовать ssh-add (без каких-либо аргументов!), Чтобы добавить этот ключ к агенту SSH.

В качестве альтернативы вы можете использовать программу PUTTYgen, предоставляемую putty для Windows.

...