Это была головная боль. С чего начать? До сих пор я следил этот статья вместе с следовать за учебник и мои результаты, когда я пытаюсь сделать
svn+engine_ssh://[insert-elastic-ip-here]/var/svn/test
Получаю следующий результат:
Permission denied (publickey).
svn: To better debug SSH connection problems, remove the -q option from 'ssh' in the [tunnels] section of your Subversion configuration file.
svn: Network connection closed unexpectedly
Мой файл конфигурации в разделе туннелей (на сервере ec2) выглядит следующим образом:
[туннели]
engine_ssh = /usr/bin/ssh -l username
У меня тот же список туннелей на моем локальном компьютере, только с использованием моего локального имени пользователя, а не моего удаленного имени пользователя.
Я предполагаю, что проблема в том, что мне нужно сгенерировать ключ ssh и как-то настроить его на моем сервере? Проблема в том, что используемый файл ec2 называется hosts.pem
как IdentityFile
для моего файла конфигурации ssh.
Итак, что я здесь делаю не так? Что я могу сделать? Есть ли альтернативы использованию SSH + svn для моего сервера?
Если кому-то понадобится дополнительная информация, я буду рад ее опубликовать.
Я предполагаю из ошибки, которую вы видите, что вы не поместили свой личный ключ ssh на удаленный компьютер.
Быстрым решением вашей проблемы, вероятно, было бы просто добавить ваш локальный id_rsa.pub в файл авторизованных ключей сервера.
Первый: cat ~/.ssh/id_rsa.pub
Во-вторых: скопируйте эту полную строку, а затем отредактируйте /home/USERNAME/.ssh/authorized_keys
вставив туда строку id_rsa.pub.
Если у вас еще нет личного ssh-ключа, просто запустите ssh-keygen
.
При желании, если вы не хотите этого делать, вы можете просто использовать ключ ssh для компьютера EC2, указав переменную среды SVN_SSH.
export SVN_SSH="ssh -i path_to_your/key/goes/here"
Да, вам нужно, чтобы ваш сервер так или иначе разрешал вход через SSH - будь то разрешение входа в систему с паролем в вашем sshd_config или использование ключевого входа - см. этот вопрос для получения некоторых подробностей о том, как заставить работать ключ входа
Вы немного усложняете процесс оформления заказа; ваше имя пользователя может быть включено в URL оформления заказа, конфигурация туннеля не требуется. Это будет работать нормально:
svn+ssh://remoteusername@[insert-elastic-ip-here]/var/svn/test
Есть ли альтернативы использованию SSH + svn для моего сервера?
Да, конечно. Ссылки на заголовок вашего вопроса svnserve
, но это неточно, поскольку вы его не используете - это метод 1, и он довольно прост. Вы не хотите использовать его через Интернет, так как нет шифрования данных или учетных данных.
Метод 2 - это метод SSH, с которым вы сейчас работаете.
Метод 3 - это веб-сервер, использующий WebDAV для обслуживания репозитория; типичный вариант - это Apache и mod_dav_svn
модуль. Вы можете определенно взглянуть на него, если вам не нравится опция SSH; это немного более гибко.