我的服务器 (CentOS 7 + Apache 2.4) 上运行着 Gitlab CE 设置。目前,网站运行良好,我可以在浏览器上与 Gitlab 进行完全交互,但是,我无法通过 SSH 在我的 shell 上正确设置环境,以便将我的存储库推送到我的服务器。
目前,当我尝试推送时,出现以下错误:
git@[MY_GITLAB_SUBDOMAIN]: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
由于我通常为我的 SSH 设置一个自定义端口,因此在我的本地机器上,我对我的 SSH 配置文件进行了如下添加:
Host gitlab
Hostname [MY_GITLAB_SUBDOMAIN]
Port [MY_CUSTOM_PORT]
User git
PreferredAuthentications publickey
IdentityFile [MY_PUBLIC_KEY]
因此,在我尝试推送的当前本地存储库上,我如下编辑了 git 配置文件:
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = true
[branch "master"]
remote = origin
merge = refs/heads/master
[remote "origin"]
url = gitlab:can/[PROJECT]
fetch = +refs/heads/*:refs/remotes/origin/*
我已将我的公钥添加到 Gitlab 偏好设置中的帐户中。我还手动检查了authorized_keys
服务器上的用户文件git
及其权限,以查看它是否正常工作。权限良好(.ssh
文件夹:700 和authorized_keys
:600),并且密钥在那里。
我错过了什么?
答案1
通过此资源之后,我就能弄清楚如何使用正确的别名来建立连接。
.SSH/config
:
Host [HOST_NAME]
HostName [GITLAB_URL]
User git
Port [CUSTOM_PORT_NUMBER]
IdentityFile ~/.ssh/[KEY_NAME]
进而:
git remote set-url origin git@[HOST_NAME]:[GITLAB_USER]/[PROJECT_NAME].git