这是我到目前为止所得到的:
我在我的repo中生成了一个SSH密钥对,并且还将公钥添加到远程主机上的〜/ .ssh / authorized_keys。
我的远程主机已禁用root用户和密码登录以确保安全性。我把我用的SSH用户名手动登录到名为SSH_USERNAME的环境变量中。
这是我不知道该怎么做的地方。我该如何填写我的bitbucket-pipelines.yml?
以下是该文件的原始内容......我应该添加什么?
# This is a sample build configuration for JavaScript.
# Check our guides at https://confluence.atlassian.com/x/14UWN 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:
branches:
master:
- step:
script: # Modify the commands below to build your repository.
- sftp $FTP_USERNAME@192.241.216.482
答案 0 :(得分:0)
首先:您应该不为您的回购添加密钥对。证书永远不应该在回购中。
将用户名定义为环境变量是个好主意。您应该使用密钥对的私钥执行相同操作。 (但是你必须对其进行Bas64编码 - 请参阅Bb Pipelines文档 - 并将其标记为安全,因此在repo设置中不可见。)
然后,在您真正想要连接之前,您必须确保管道的SSH设置已知私钥(当然,Base64已解码)。
基本上,您需要在script
(直接或在shell脚本中)执行的操作是:
- echo "$SSH_PRIVATE_KEY" | base64 --decode > ~/.ssh/id_rsa
- chmod go-r ~/.ssh/id_rsa
顺便说一句,我建议还将主机的IP放在一个env变量中。