我正面临 gitlab ci 的问题。 我有一个
deploy
阶段,应该通过 ssh 联系我的 VPS 并询问我的 gitlab 注册表。
问题是当你试图通过我的 ssh 验证我的 alpine runner 时。 这是我的部署:
deploy:
tags:
- springVps
image: alpine:3.6
stage: deploy
before_script:
- apk update
- 'which ssh-agent || ( apk update -y && apk add openssh-client -y )'
- mkdir -p ~/.ssh
- eval $(ssh-agent -s)
- echo "$SSHVPS" | ssh-add -
- ssh-keyscan -H myawesomedomain.fr >> ~/.ssh/known_hosts
script:
- ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -p 51 -v -v -v [email protected] "echo Hello, world!"
我在这里找到了这段代码:https://gitlab.com/gitlab-examples/ssh-private-key/-/issues/4#note_35042568
这是我的错误信息:SSH Permission denied (publickey,password)
注意:我将 ssh 端口从 22 更改为 51,但我遇到了同样的问题 之前。
搜索我的错误代码,我发现这篇文章:Gitlab CI - SSH Permission denied (publickey,password)
我不完全理解接受的答案:
您需要将公钥添加到服务器以便被识别 作为身份验证密钥。这个就是,贴上公钥的内容 对应于您正在使用的私钥 ~/.ssh/authorized_keys 在 $PRODUCTION_SERVER 上。
这是否意味着我应该将我的 vps 公钥放入
~/.ssh/authorized_keys
?
我在我的 vps 上执行了以下命令行:cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys
现在我的
~/.ssh/authorized_keys
包含我的 vps 公钥,但这并不能解决我的问题。
我还验证了我的变量 $SSHVPS
具有良好的价值,我试图将变量作为文件,并且作为变量,变量没有被保护。我已经在 gitlab 中注册了我的 vps 公钥。
然后我尝试使用此命令行从本地计算机连接到我的 vps:
ssh -i key [email protected] -p 51
这个命令问我密码,它问我密码似乎不正常。 我想这就是失败的原因,我的 vps 向我的高山跑步者询问密码,但不应该这样做。
我做了很多搜索,这可能是一个权限错误。我发现这些命令行使
~/.ssh/authorized_keys
可读和可编辑。
这是我试过的:
chmod -v 700 ~
chmod -v 700 ~/.ssh
chmod -v 600 ~/.ssh/authorized_keys
但我仍然有同样的问题。 我的想法用完了,欢迎任何帮助;) 感谢阅读 :-)