GitLab 生产部署 - 权限被拒绝(公钥)
GitLab production deployment - Permission denied (publickey)
这是我第一次使用 GitLab 或 Docker 图像部署 Laravel 应用程序,我可能对这个过程有些困惑。
我遵循了这个指南:laravel_with_gitlab_and_envoy,在部署开始之前一切似乎都正常。
我可以看到我的文件实际上已上传到服务器,但部署作业总是以错误结束。
目标生产服务器是简单的共享主机,我在那里有 ssh 连接(虽然 sudo 似乎不起作用,所以我不能编辑实际的 ssh 配置)。
我对 Envoy.blade.php
的 @server
指令有点困惑,并且已经在那里尝试了不同的凭据。但是现在我很确定我应该把我的 ssh_username@production_ip
放在那里,但是 GitLab 部署作业以这个错误结束:
$ [[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config
$ ~/.composer/vendor/bin/envoy run deploy --commit="$CI_COMMIT_SHA"
[ssh_username@production_ip]: Cloning repository
[ssh_username@production_ip]: Cloning into 'app/releases/20200522043301'...
[ssh_username@production_ip]: Permission denied (publickey).
[ssh_username@production_ip]: fatal: Could not read from remote repository.
[ssh_username@production_ip]: Please make sure you have the correct access rights
[ssh_username@production_ip]: and the repository exists.
[✗] This task did not complete successfully on one of your servers.
现在我不确定我缺少哪些权限,因为主要的应用程序文件已经上传到 app_dir
。这是否意味着它出于某种原因无法从 GitLab 或其他地方获取发布文件?
或者此时我的 Docker 图片有问题吗?
呵呵,终于找到问题了。我必须手动创建包含以下内容的 .ssh/config
文件:
Host gitlab.com
User git
Hostname gitlab.com
IdentityFile ~/.ssh/deploy_key
TCPKeepAlive yes
IdentitiesOnly yes
现在部署过程终于可以上传发布版本了!
这是我第一次使用 GitLab 或 Docker 图像部署 Laravel 应用程序,我可能对这个过程有些困惑。
我遵循了这个指南:laravel_with_gitlab_and_envoy,在部署开始之前一切似乎都正常。 我可以看到我的文件实际上已上传到服务器,但部署作业总是以错误结束。
目标生产服务器是简单的共享主机,我在那里有 ssh 连接(虽然 sudo 似乎不起作用,所以我不能编辑实际的 ssh 配置)。
我对 Envoy.blade.php
的 @server
指令有点困惑,并且已经在那里尝试了不同的凭据。但是现在我很确定我应该把我的 ssh_username@production_ip
放在那里,但是 GitLab 部署作业以这个错误结束:
$ [[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config
$ ~/.composer/vendor/bin/envoy run deploy --commit="$CI_COMMIT_SHA"
[ssh_username@production_ip]: Cloning repository
[ssh_username@production_ip]: Cloning into 'app/releases/20200522043301'...
[ssh_username@production_ip]: Permission denied (publickey).
[ssh_username@production_ip]: fatal: Could not read from remote repository.
[ssh_username@production_ip]: Please make sure you have the correct access rights
[ssh_username@production_ip]: and the repository exists.
[✗] This task did not complete successfully on one of your servers.
现在我不确定我缺少哪些权限,因为主要的应用程序文件已经上传到 app_dir
。这是否意味着它出于某种原因无法从 GitLab 或其他地方获取发布文件?
或者此时我的 Docker 图片有问题吗?
呵呵,终于找到问题了。我必须手动创建包含以下内容的 .ssh/config
文件:
Host gitlab.com
User git
Hostname gitlab.com
IdentityFile ~/.ssh/deploy_key
TCPKeepAlive yes
IdentitiesOnly yes
现在部署过程终于可以上传发布版本了!