@hottab_1

Не могу подключиться к gitlab по SSH, почему?

Добрый день!
Есть развернутый на своем сервере гитлаб, он успешно работает, выгружаются проекты, все создается, веб-интерфейс тоже работает.
Раньше не так часто приходилось выгружать проекты, так как почти не было правок, поэтому при выгрузке в гитлаб - просто вводили логин и пароль.
Сейчас появилась потребность в частых коммитах, и вводить логин и пароль часто не очень удобно.
Решил настроить авторизацию через SSH ключ.

Для чистоты удалял все из папки .ssh и делал все с нуля.
Делаю по следующему алгоритму:
  1. Создаю ключ следующей командой: ssh-keygen -t rsa -f ~/.ssh/gitlab
  2. Копирую данные из файла gitlab.pub и вставляю их в gitlab, ключ успешно добавляется
  3. Пытаюсь клонировать проект запрашивает пароль, пытался вводить пароль от своего пользователя - пароль не верный


Команда ssh -v git@gitlab.iso-team.ru выдает следующее:
Команда ssh -v git@gitlab.iso-team.ru

OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n 7 Dec 2017
debug1: Reading configuration data /home/kramdmitriy/.ssh/config
debug1: /home/kramdmitriy/.ssh/config line 1: Applying options for gitlab.iso-team.ru
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to gitlab.iso-team.ru [45.80.69.169] port 22.
debug1: Connection established.
debug1: identity file /home/kramdmitriy/.ssh/gitlab type 0
debug1: key_load_public: No such file or directory
debug1: identity file /home/kramdmitriy/.ssh/gitlab-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.3
debug1: Remote protocol version 2.0, remote software version OpenSSH_7.6p1 Ubuntu-4ubuntu0.3
debug1: match: OpenSSH_7.6p1 Ubuntu-4ubuntu0.3 pat OpenSSH* compat 0x04000000
debug1: Authenticating to gitlab.iso-team.ru:22 as 'git'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: algorithm: curve25519-sha256
debug1: kex: host key algorithm: ecdsa-sha2-nistp256
debug1: kex: server->client cipher: chacha20-poly1305@openssh.com MAC: compression: none
debug1: kex: client->server cipher: chacha20-poly1305@openssh.com MAC: compression: none
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ecdsa-sha2-nistp256 SHA256:jn3djC8AvaKRIeHzBy4wFFu1pl7TKuMDEwbreaZ5Qbs
debug1: Host 'gitlab.iso-team.ru' is known and matches the ECDSA host key.
debug1: Found key in /home/kramdmitriy/.ssh/known_hosts:1
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_EXT_INFO received
debug1: kex_input_ext_info: server-sig-algs=
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering public key: RSA SHA256:7rdux0TUfos0dlwQomw4RxqaJfxIbT4YmtcTfSFhIak /home/kramdmitriy/.ssh/gitlab
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: password

  • Вопрос задан
  • 153 просмотра
Решения вопроса 1
@hottab_1 Автор вопроса
Всем выражаю большую благодарность за помощь, каждый совет однозначно помог.
Решение оказалось как всегда на поверхности.
Все дело было в том, что файл sshd_config на сервере, который находится по следующему пути: /etc/ssh в строчке AllowUsers содержал всего одного доступного пользователя, добавил пользователя git, под которым происходит авторизация и все стало работать.
Строка AllowUsers после внесения изменений стал выглядеть вот так:
AllowUsers youruser git

Расписываю алгоритм более подробно, на случай если кто-то столкнется с такой проблемой.
  1. Открываем файл sshd_config на сервере, который находится по следующему пути /etc/ssh
  2. Ищем строку AllowUsers, скорее всего там будет прописан ваш пользователь под которым обычно происходит авторизация по SSH. Добавляем через пробел пользователя git и строка получается вот такой: AllowUsers youruser git
    Сохраняем изменения

  3. Перезагружаем sshd командой: sudo /etc/init.d/ssh restart
  4. Получаем ключ для Gitlab, много где описано как это сделать, я сделал следующим образом:
    Вводим команду на локальной машине, с которой будете работать:
    ssh-keygen -t rsa -f ~/.ssh/gitlab
    После переходим в папку .ssh и копируем ключ из файла gitlab.pub, идем в веб-интерфейс gitlab и войдя под нужным пользователем добавляем ему ключ.
  5. Теперь создадим файл config на локальной машине в папке .ssh, он нужен, чтобы указать какой ключ для какого соединения применять, так как подключение на сервер у нас происходит тоже по SSH.
    Данный файл получился вот такого содержания:
    Host 45.80.69.169
        IdentityFile /home/kramdmitriy/.ssh/id_rsa
        port 22
    Host gitlab.iso-team.ru
        IdentityFile /home/kramdmitriy/.ssh/gitlab
        port 22

    Первый ключ - это ключ для сервера, второй для гитлаба.
    Сохраняем файл и пробуем подключиться к gitlab по SSH

Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@ProFfeSsoRr
Сис.админ по Linux
Смотри, у тебя есть машина, на которой стоит gitlab. И на этой машине есть ssh сервер. И в него ты попадаешь. А тебе надо попадать в ssh сервер самого гитлаба, который знает про твои git проекты. Проще всего перевесить ssh сервер машины на нестандартный порт.
Ответ написан
hempy80
@hempy80
Внесистемный администратор
Пользователь системы и пользователь gitlab это два разных пользователя. Инструкция
Ответ написан
@ZooMik
Эту команду выполняете на машине с которой планируете подключаться, под своей учеткой из под которой работаете на этой же машине:
ssh-keygen -t rsa -f ~/.ssh/gitlab
Затем копируете ключ на сервер, где развернут гитлаб с помощью команды:
ssh-copy-id  -i ~/.ssh/gitlab.pub git@gitlab.iso-team.ru

Попросит ввести пароль от пользователя git на сервере гитлаб.
После этого
ssh git@gitlab.iso-team.ru
Должно работать без пароля. Если вы об этом просили.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Modesco Волгоград
от 70 000 до 150 000 ₽
Абсолют Банк Москва
от 150 000 до 170 000 ₽
AI People Санкт-Петербург
от 100 000 ₽
06 июн. 2020, в 11:17
500 руб./за проект
06 июн. 2020, в 11:15
33333 руб./за проект