警告:未受保护的私钥文件!使用 Bitbucket 管道和 SSH

问题描述 投票:0回答:3

我正在使用 Git 进行说明并尝试使用 Bitbucket Pipelines 部署到我的远程服务器。

在阅读了一些关于此的文章并查看其他人的尝试后,我使用以下代码:

# This is a sample build configuration for PHP.
# Check our guides at https://confluence.atlassian.com/x/e8YWN for more examples.
# Only use spaces to indent your .yml configuration.
# -----
# You can specify a custom docker image from Docker Hub as your build environment.
image: samueldebruyn/debian-git

pipelines:
    default:
        - step:
            script:
                - umask 077 - echo $MY_SSH_KEY | base64 --decode > ~/.ssh/id_rsa

                - scp -i ~/.ssh/id_rsa -P $SERVER_PORT -r $DIRECTORY_TRANSFER_LIST $USERNAME@$SERVER_IP_ADDRESS:~/site

只是指出,环境变量是:

DIRECTORY_TRANSFER_LIST:这是我的域名,没有 www。即域名.co.uk

MY_SSH_KEY:我已经尝试过公钥和私钥,但似乎没有什么区别。

服务器端口:22

我实际上不确定图像的含义以及为什么此链接在这里,这可能是我的问题?

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/root/.ssh/id_rsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "/root/.ssh/id_rsa": bad permissions
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
lost connection

在准备好另一篇关于相同错误消息的帖子后,尽管与 Bitbucket Pipelines 无关。建议将chmod更改为400。

所以我通过 ssh 进入远程服务器并将 id_rsa 的权限更改为 400:

cd ~/.ssh
chmod 400 id_rsa

但是当我重新运行管道时,这没有任何区别。

我没做什么?

ssh permissions bitbucket bitbucket-pipelines
3个回答
2
投票

您写了“我通过 ssh 连接到远程服务器”——我认为这就是问题所在,因为听起来您试图修复部署项目的服务器上的权限。 SSH 检查client 端的权限,在您的例子中是 Docker 镜像中的 SSH 密钥。这意味着您只需在

chmod
中的
script
umask
之间添加
scp


0
投票

我建议您按照此处的文档将 SSH 密钥添加到管道:https://confluence.atlassian.com/bitbucket/use-ssh-keys-in-bitbucket-pipelines-847452940.html

这将消除您管理文件权限的需要,使轮换密钥变得更容易,并从您的配置中删除相当混乱的命令。 (您的团队会因此而爱您!)

umask 077 - echo $MY_SSH_KEY | base64 --decode > ~/.ssh/id_rsa
方法是管道拥有适当的 SSH 密钥支持之前的一种解决方法。


0
投票

ls -al ~/.ssh

ssh-keygen -t rsa -b 4096 -C“[电子邮件受保护]

eval "$(ssh-agent -s)" ssh-添加 ~/.ssh/id_rsa

猫~/.ssh/id_rsa.pub

转到您的 GitHub 个人资料 → 设置 → SSH 和 GPG 密钥 → 新 SSH 密钥。 粘贴您的公钥并保存。

ssh -T [电子邮件受保护]

它会显示 你好 !您已成功通过身份验证,但 GitHub 不提供 shell 访问权限。

git远程-v

git 远程 set-url origin [电子邮件受保护]:/.git

git推送原点

© www.soinside.com 2019 - 2024. All rights reserved.