Назад | Перейти на главную страницу

В разрешении отказано (публичный ключ) на собственном сервере gitlab

Я хочу настроить ssh-соединение с моим сервером gitlab.

gitlab spec

Установить через docker-compose :

# ---------------------- #
#         gitlab         #
# ---------------------- #
gitlab:
  image: gitlab/gitlab-ce:latest
  restart: always
  hostname: gitlab.host.dev
  ports:
    - '801:80'
    - '4433:443'
    - '2222:22'
  volumes:
    - ./config:/etc/gitlab
    - ./logs:/var/log/gitlab
    - ./data:/var/opt/gitlab
  environment:
    GITLAB_OMNIBUS_CONFIG: |
      external_url 'http://gitlab.host.dev'
      gitlab_rails['smtp_enable'] = true
      gitlab_rails['smtp_address'] = "smtp.gmail.com"
      gitlab_rails['smtp_port'] = 587
      gitlab_rails['smtp_user_name'] = "a@gmail.com"
      gitlab_rails['smtp_password'] = "xyz"
      gitlab_rails['smtp_domain'] = "smtp.gmail.com"
      gitlab_rails['smtp_authentication'] = "login"
      gitlab_rails['smtp_enable_starttls_auto'] = true
      gitlab_rails['smtp_tls'] = false
      gitlab_rails['smtp_openssl_verify_mode'] = 'peer'

На изображении :

cd /opt/gitlab/embedded/service/gitlab-shell/

ls -al

[...]
lrwxrwxrwx  1 root root    39 Sep  7 18:19 config.yml -> /var/opt/gitlab/gitlab-shell/config.yml
[...]

cd /var/opt/gitlab/.ssh/

ls -al

-rw-------  1 git  git  3036 Sep 10 08:30 authorized_keys
-rw-r--r--  1 git  git     0 Sep 10 08:30 authorized_keys.lock

Шаг

  1. Я добавляю ключ в настройку ключей SSH (для моего пользователя в gitlab)
ssh-rsa AAAAAAAAAAA= user@hostname
  1. Создаю проект test_ssh в моем gitlab
  2. Я создаю новую папку на своем компьютере mkdir test_ssh и touch test.txt
  3. git init
  4. git add .
  5. git commit -am "initial commit
  6. добавить пульт gitlab git remote add origin git@gitlab.dn.dev:gitlabuser/test_ssh.git
  7. git push -u origin master

ошибка

git@gitlab.helyx.dev: Permission denied (publickey).
fatal: Can not read remote depot.

Please check that you have access rights
and that the deposit exists.

Https тест

Я тестирую push через https и работает правильно.

  1. git remote add https https://gitlab.dn.dev/user/test_ssh.git
  2. git push -u https master
To https://gitlab.dn.dev/user/test_ssh.git
   * [new branch]      master -> master

Вы настроили свой контейнер для доступа к ssh через порт 2222:

  ports:
    - '2222:22'

Но вы не указываете порт в своем удаленном URL-адресе git. Вам нужно добавить порт 2222 к вашему удаленному URL-адресу, примерно так:

git remote add origin ssh://git@gitlab.dn.dev:2222/test_ssh.git

Без этого порта вы подключаетесь к SSHd самого сервера, а не к тому, который предоставляется Gitlab.

Другие варианты предоставления порта: перечислено здесь.

Проверьте настройки в sshd (/ etc / ssh / sshd_config)

PubkeyAuthentication yes
RSAAuthentication yes

и перезапустите sshd