Я хочу настроить ssh-соединение с моим сервером gitlab.
Установить через 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
ssh-rsa AAAAAAAAAAA= user@hostname
test_ssh
в моем gitlabmkdir test_ssh
и touch test.txt
git init
git add .
git commit -am "initial commit
git remote add origin git@gitlab.dn.dev:gitlabuser/test_ssh.git
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.
Я тестирую push через https и работает правильно.
git remote add https https://gitlab.dn.dev/user/test_ssh.git
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