【发布时间】:2021-10-30 14:28:06
【问题描述】:
我在 GitLab 上有一个存储库和一个私有 VPS。我想要做的是当我推送到存储库时,我需要 GitLab/ci 脚本来连接 VPS 服务器。 我试过的是
- 使用
ssh-keygen登录VPS并生成SSH密钥 - 将私钥复制到 Gitlab > 设置 > CI/CD > 变量 > SSH_PRIVATE_KEY
- 将公钥复制到 Gitlab > 用户首选项 > SSH 密钥
- 并在 gitlab.ci 中使用以下脚本推送提交
- 'which ssh-agent || ( apk add openssh-client )'
# Run ssh-agent (inside the build environment)
- eval $(ssh-agent -s)
# add ssh key stored in SSH_PRIVATE_KEY variable to the agent store
- echo "$SSH_PRIVATE_KEY"
- echo "$SSH_PRIVATE_KEY" > key
- chmod 600 key
- ssh-add key
# make dirs
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
- ssh-keyscan -t rsa 1.2.3.4.5 > ~/.ssh/known_hosts
- chmod 644 ~/.ssh/known_hosts
# Remove
- rm key
script:
- ssh user@1.2.3.4.5
=> PS:1.2.3.4.5不是真实的IP地址我只是换了个例子。
- 我得到的是
user@1.2.3.4.5 : Permission denied (publickey,password).
=> PS:我的分支或标签未受保护或私有
【问题讨论】:
-
您已将新生成的密钥添加到
authorized_keys?