Как мне получить проверку SVN, используя пару открытого/закрытого ключа?

Я должен проверить код и запустить его. У меня есть URL:

svn+ssh://[email protected]/home/svn/project/trunk

У меня есть файл с их закрытым ключом. Что мне сделать, чтобы получить этот код?


person Sam McAfee    schedule 10.10.2008    source источник
comment
Какая у вас операционная система?   -  person Neall    schedule 10.10.2008
comment
Mac OS X Leopard локально, но на самом деле это должно идти на коробке RH ES4.   -  person Sam McAfee    schedule 10.10.2008
comment
Я также получаю -bash: svn+ssh://... бла-бла Нет такого файла или каталога, хотя у меня установлены svn и ssh, и я использую их все время. Могу ли я сделать это из Eclipse с плагином Subclipse (который я также часто использую)?   -  person Sam McAfee    schedule 10.10.2008


Ответы (7)


Закрытый ключ передается на клиентский компьютер, часто называемый ~/.ssh/id_rsa, ~/.ssh/id_dsa или ~/.ssh/identity в зависимости от версии SSH и типа ключа. Однако вы можете просто использовать ssh -i path/to/private.key.

Это предполагает, что соответствующий открытый ключ существует на сервере в ~/.ssh/authorized_keys и что на вашем локальном компьютере запущен клиент OpenSSH. Если вы используете PuTTY в Windows, просто откройте программу Pageant и импортируйте ключ через графический интерфейс.

person ephemient    schedule 10.10.2008
comment
этот вопрос задает svn, а не ssh - person Transcendence; 13.05.2015

Если вам нужно использовать пользовательский ключ только для svn, будет работать следующее:

SVN_SSH="ssh -i /path/to/key_name"

export SVN_SSH

svn commands

http://labs.kortina.net/2010/01/30/svn-checkout-with-private-key-over-ssh/

person David    schedule 15.12.2010
comment
Обратите внимание, что я всегда буду использовать полный путь для пути к ключу. - person Alexis Wilke; 22.12.2012
comment
Путь теперь абсолютный! - person David; 16.11.2013
comment
его можно использовать, если используется только один сервер репозитория, для нескольких серверов репозитория необходимо использовать файл ~/.ssh/config - person AnViKo; 10.04.2015
comment
Работает с целью выпуска Maven для проектов, размещенных на svn+ssh. - person Grim; 24.06.2019

Добавьте эту запись в свой файл ~/.ssh/config:

Host YOUR_SERVER
IdentityFile YOUR_PRIVATE_KEY_PATH # (ex: ~/.ssh/rsa)
User USER_NAME

Дополнительные параметры см. на справочной странице ssh_config.

person Zied    schedule 05.03.2011

просто используйте команду ssh-add (она запросит ваш пароль, это пароль, который вы использовали при создании этой пары открытых ключей).

ssh-add PATH_TO_YOUR_PRIVATE_JEY
e.g. ssh-add ~/.ssh/myPrivateKey.key

убедитесь, что вы правильно добавили ключ, выполнив это

ssh-add -l

В нем будут перечислены все файлы идентификации, которые он использует.

person kay am see    schedule 31.08.2012

Вот шаги, которые я использовал для подключения из командной строки Mac OS X к моему серверу через svn+ssh:

На сервере:

ssh-keygen -b 1024 -t dsa -f mykey   (creates mykey and mkey.pub files)

Скопируйте содержимое mykey.pub в ~/.ssh/authorized_keys (создайте файл authorized_keys, если он не существует)

Загрузите mkey на локальный компьютер и запустите:

chmod 600 mkey  (the next step won't run otherwise)
svn-add mkey  (enter your passphrase)

оформить заказ с вашего сервера svn с помощью ssh:

svn co svn+ssh://[email protected]/repos/path

Удалите mkey и mkey.pub с вашего сервера

person ryatkins    schedule 16.08.2011

В дополнение к ответам два скриншота из Eclipse 3.7 с Subversive.


Общие настройки
Введите имя пользователя! (я забыл об этом перед тем, как взять снимок экрана). Не вводите пароль.


Настройки SSHВведите ключевую фразу-пароль, если ваш закрытый ключ защищен паролем.


Картинка стоит тысячи слов.

person uı6ʎɹnɯ ꞁəıuɐp    schedule 16.01.2014

Добавьте закрытый ключ в свою папку ~/.ssh/, а затем запустите ssh-agent $SHELL; ssh-add;, а затем svn co этого URL-адреса должен работать.

person Swaroop C H    schedule 10.10.2008
comment
Ваши закрытые ключи не хранятся в ~/.ssh/config. - person ephemient; 11.10.2008
comment
К сожалению, вы совершенно правы, это должно было быть authorized_keys. - person Swaroop C H; 11.10.2008