Создание ключей SSH для Gerrit и Hudson

Я пытаюсь использовать подключаемый модуль Hudson Gerrit Trigger.

По какой-то причине Gerrit не принимает ключ SSH, расположенный в /var/lib/hudson/.ssh/id_rsa.

В графическом интерфейсе я получаю Connection error : com.jcraft.jsch.JSchException: Auth fail как ошибку, а когда я работаю в терминале, я получаю ошибку Permission denied (publickey).

Как сгенерировать и использовать работающий закрытый ключ, чтобы Hudson и Gerrit могли работать нормально?


person Josh Smith    schedule 14.09.2010    source источник


Ответы (1)


OP Josh Smith удалось разобраться:

На самом деле мне нужно было добавить ключ SSH из /var/lib/hudson/.ssh/id_rsa.pub для пользователя (меня) в графический интерфейс Gerrit.
Затем все заработало как чудо.
Имя пользователя должно быть именем пользователя в Gerrit (учетная запись администратора). ).

Мой оригинальный совет ниже:


Что такое пользователь, который будет использовать веб-систему проверки кода Gerrit?

Этому пользователю нужен ваш /var/lib/hudson/.ssh/id_rsa.pub открытый ключ ssh в его $HOME/.ssh/authorized_keys, как показано в этом руководстве. .

альтернативный текст

Распределение ключей

Открытая часть пары ключей RSA должна быть скопирована на любые серверы, к которым будет обращаться клиент. Копируемая информация об открытом ключе должна находиться в файле ~/.ssh/id_rsa.pub на клиенте.
Предполагая, что все серверы используют OpenSSH вместо другой реализации SSH, необходимо добавить данные открытого ключа. в файл ~/.ssh/authorized_keys на серверах.

# first, upload public key from client to server
client$ scp ~/.ssh/id_rsa.pub server.example.org:

# next, setup the public key on server
server$ mkdir ~/.ssh
server$ chmod 700 ~/.ssh
server$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
server$ chmod 600 ~/.ssh/authorized_keys
server$ rm ~/id_rsa.pub

Не забудьте добавить новые данные открытого ключа в файл author_keys, так как может использоваться несколько открытых ключей. Каждая запись открытого ключа должна находиться в отдельной строке.


person VonC    schedule 14.09.2010
comment
@VonC Я начинаю думать, что ты отвечаешь на все мои вопросы! У меня также может быть прямая линия... hudson — это пользователь, который должен использовать систему проверки, думаю. Простите нубизма. Вы имеете в виду это или фактического пользователя человека, например joshsmith? - person Josh Smith; 15.09.2010
comment
@Josh: если hudson — это пользователь, выполняющий ssh-соединение с локальной системой Gerrit, то ему нужно добавить свой собственный id_rsa.pub к его ~hudson/.ssh/authorized_key. - person VonC; 15.09.2010
comment
@VonC hudson имеет свой собственный id_rsa.pub в /var/lib/hudson/.ssh. Это то, что вы имеете в виду? - person Josh Smith; 15.09.2010
comment
@VonC Мне следует читать внимательнее. Ясно, что вы не это имели в виду. Где $HOME для пользователя hudson? Я знаю, что на этот вопрос есть переменный ответ, поэтому нужен $HOME, но я действительно не уверен, где можно найти пользовательские каталоги. - person Josh Smith; 15.09.2010
comment
Вы имеете в виду что-то вроде /root/.ssh/? В этом каталоге есть только файлы id_rsa, id_rsa.pub и known_hosts, созданные пользователем hudson. - person Josh Smith; 15.09.2010
comment
@Josh: Где $HOME для пользователя hudson? Точно. В чем вопрос и общая сложность этих проблем Хадсона, связанных с ssh, которые я вижу на SO. Вам нужно каким-то образом отобразить переменные среды при выполнении этого задания и посмотреть, упоминается ли $HOME. - person VonC; 15.09.2010
comment
Мне просто скопировать/вставить id_rsa.pub в файл authorized_keys? - person Josh Smith; 15.09.2010
comment
@Josh: вам нужно добавить id_rsa.pub к содержимому файла authorized_keys (или создать этот файл authorized_keys, если он еще не существует). Дополнительные сведения см. на странице sial.org/howto/openssh/publickey-auth. - person VonC; 15.09.2010
comment
Спасибо за ссылку. Ваш ответ был не совсем тем ответом, который я искал, но ваша помощь привела меня туда. На самом деле мне нужно было добавить ключ SSH от /var/lib/hudson/.ssh/id_rsa.pub для пользователя (меня) в графический интерфейс Gerrit. Затем оттуда это сработало как шарм. Имя пользователя должно быть именем пользователя в Gerrit (учетная запись администратора). - person Josh Smith; 15.09.2010
comment
@Джош: отлично! Вы нашли решение. Я обновил свой ответ, чтобы отразить его, а также задокументировать (для дальнейшего использования) понятие распространения открытых ключей SSH. - person VonC; 15.09.2010