При установке gitolite я получаю, что /tmp/id_rsa.pub не является действительным файлом ssh pubkey

Я пытаюсь установить git и gitolite для нашей разработки на Linux-сервере CentOS. До сих пор все работало нормально, за исключением шага, на котором я определяю пользователя-администратора для gitolite с помощью этой команды:

gitolite setup -pk /tmp/id_rsa.pub
FATAL: errors found but logfile could not be created
FATAL: /home/git/.gitolite/logs/gitolite-2013-05.log: No such file or directory
FATAL: die      '/tmp/id_rsa.pub' does not seem to be a valid ssh pubkey file

Похоже на две ошибки; в /home/git/ есть только эти файлы

.gitolite.rc
.bashrc
.bash_profile
.bash_logout

И во-вторых (что кажется проблемой), это то, что pub_key недействителен. Однако, согласно книге git, файл выглядит одинаково. Я сгенерировал это так:

  1. Установка git на мой компьютер (не на сервер)

  2. Из git bash:

ssh-keygen.exe
(default path)
(no password)
(no password)

Я скопировал сгенерированный файл .pub в каталог tmp на сервере с помощью программы WinSCP.

Что я делаю неправильно? В гугле ответа не нахожу.

PS. Если вам нужна дополнительная информация, пожалуйста, дайте мне знать.


person Roger    schedule 27.05.2013    source источник
comment
У меня были проблемы со слишком короткими ключами RSA, сгенерированными Windows. В то время никто не жаловался, они просто не работали. Может быть, кто-то добавил немного кода Perl для проверки длины ключа? Убедитесь, что вы генерируете как минимум 768-битные ключи RSA.   -  person torek    schedule 27.05.2013
comment
@torek Ключ - это точная длина образца книги. Что касается perl-кода, то нет, сервер был только что установлен и ключ был сгенерирован мной для этой цели, папки .ssh у меня не было. Я так потерялся :(.   -  person Roger    schedule 27.05.2013


Ответы (2)


Я также столкнулся с этой проблемой и изучил источники гитолита. Код в основном выполняется

ssh-keygen -l -f yourFile.pub

чтобы проверить, является ли файл действительным открытым ключом ssh... На моей машине (маршрутизатор OpenWRT) ssh-keygen не был установлен. Установка с помощью:

opkg update
opkg install openssh-keygen

исправил проблему для меня.

person Dietmar Malli    schedule 25.12.2014
comment
Интересный ответ, я бы не подумал сразу проверить ssh-keygen. +1 - person VonC; 26.12.2014
comment
Точно! Если вы используете Alpine Linux, убедитесь, что вы установили openssh-keygen - person starfry; 29.09.2020

Убедитесь, что /tmp/id_rsa.pub точно такой же, как у вас на ПК, в одну строку, без ^M в конце строки (только \n, а не \r\n).

Прочитав страницу справки по настройке gitolite, вы должны назвать свой открытый ключ (в /tmp файла сервер) с именем пользователя администратора.

При первом запуске вам необходимо иметь готовый файл открытого ключа (обычно с рабочей станции администратора).
Если имя пользователя главного администратора gitolite — «alice», этот файл должен называться «alice.pub». Затем от имени пользователя хостинга запустите:

gitolite setup -pk alice.pub
person VonC    schedule 27.05.2013
comment
@ Роджер, нет, это может быть любое имя, которое ты хочешь. Убедитесь, что вы создали его следующим образом: stackoverflow.com/a/16171741/6309 - person VonC; 27.05.2013
comment
Как сделать однострочный открытый ключ? У меня 4-5 строк. - person user938363; 26.09.2013
comment
@user938363 user938363 вы уверены, что это более чем несколько строк? Или просто отображается в несколько строк? Вы можете добавить его к ~/.ssh/authorized_keys с помощью cat key.pub >> authorized_keys: ключ будет скопирован как одна строка. - person VonC; 26.09.2013