簡體   English   中英

我必須輸入我的登錄名兩次並且 ssh-key 在 dockerized gitlab 上不起作用

[英]I have to enter my login twice and ssh-key doesn't work on a dockerized gitlab

我使用以下命令啟動 gitlab:

sudo docker run --detach --hostname example.com --publish 4433:443 --publish 8080:80 --publish 2222:22 --name gitlab --restart always --volume /data/gitlab/config:/etc/gitlab --volume /data/gitlab/logs:/var/log/gitlab --volume /data/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce:latest

example.com是另一個 URL,您可能已經猜到了。

我有一個帶有此配置的 nginx 服務器:

server {
  server_name example.com;
  client_max_body_size 50m;
  location / {
    proxy_pass http://127.0.0.1:8080/;
    proxy_set_header Host $http_host;
    proxy_http_version 1.1;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Real-IP $remote-addr;
  }
  listen 443 ssl;
  ssl_certificate [MY PATH TO THE .pem FILE];
  ssl_certificate_key [OTHER PATH];
  include /etc/letsencrypt/options-ssl-nginx.conf;
  ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}

server {
  if ($host = example.com) {
    return 301 https://$host$request_uri;
  }
}

當我使用 HTTPS 克隆和推送 repos 時,我必須輸入我的登錄名/密碼兩次,當我使用 ssh(例如git clone git@example.com:myuser/myproject.git )時,它會要求我輸入密碼。

我三重檢查,我的 ssh 密鑰配置是正確的。

我默認保留gitlab.rb配置,除了這一行:

external_url 'https://example.com'

這里發生了什么?

對於這個特定的密鑰,我不使用密碼

這意味着 SSH 無法連接到 example.com 作為 git,並回退到身份驗證:git 的密碼(你不應該有)。

使用端口語法HOST_PORT:CONTAINER_PORT ,您應該啟動 GitLab Docker 容器,主機端口(例如 2222)映射到 GitLab 內部 SSH 守護程序(端口 22)

sudo docker run [...] -port 2222:22

然后檢查它是否正在使用:

ssh -T git@example.com -p 2222
Welcome to GitLab, @you!

使用 ~/.ssh/config 文件,更容易:

Host         gl
hostname     example.com
port         2222
User         git
IdentityFile ~/.ssh/yourGitLabkey

然后:

ssh -T gh
Welcome to GitLab, @you!

請參閱此線程此線程的示例,該線程基於官方文檔“ 使用 Docker Compose 安裝 GitLab ”,在問題 1767中提到。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM