在 travis 添加 ssh key
生成 SSH key
生成
1
ssh-keygen -t rsa -b 4096 -C "<your_email>" -f github_deploy_key -N ''
注: 这里使用
github_deploy_key
作为存储的名字
这会生成两个文件
公钥
github_deploy_key.pub
私钥
github_deploy_key
拷贝公钥到剪贴板
1
2Copies the contents of the id_rsa.pub file to your clipboard
clip < ~/.ssh/github_deploy_key.pub如果是做为项目的部署公钥,需要添加到项目中,以 GitHub 为例,添加公钥的时候需要勾上
Allow Write Access
删除
github_deploy_key.pub
1
rm github_deploy_key.pub
安装 The Travis Client
首先确保已经安装好 Ruby (1.9.3+),官方推荐 2.0.0
执行
gem install travis -v 1.8.8 --no-rdoc --no-ri
安装 travis client检查安装是否正确
travis version
加密 SSH key
加密文件
1
travis encrypt-file github_deploy_key
加密后的文件为
github_deploy_key.enc
会输出类似的结果:
1
2
3
4
5
6
7
8
9
10
11encrypting github_deploy_key for <username>/<repository>
storing result as github_deploy_key.enc
storing secure env variables for decryption
openssl aes-256-cbc -K $encrypted_XXXXXXXXXXXX_key -iv $encrypted_XXXXXXXXXXXX_iv -in github_deploy_key.enc -out github_deploy_key -d
Pro Tip: You can add it automatically by running with --add.
Make sure to add github_deploy_key.enc to the git repository.
Make sure not to add github_deploy_key to the git repository.
Commit all changes to your .travis.yml.注: 如果是 GitHub 项目,建议先通过
travis login
登录,然后再通过travis encrypt-file github_deploy_key -add
加密,travis Client 会自动更新.traivs.yaml
并且在 travis 中自动添加变量encrypted_XXXXXXXXXXXX_key
和encrypted_XXXXXXXXXXXX_iv
删除
github_deploy_key
1
rm -f github_deploy_key
修改 .travis.yaml
在 before_install
添加如下内容:
1 | before_install: |
注: 步骤如下:通过 openssl 解密文件并输出到
~/.ssh/github_deploy_key
中;设定~/.ssh/github_deploy_key
文件权限并添加到ssh-agent
中
ssh_config
内容,主要是防止首次连接的时候,会弹出提示。如果有其他的地址,参考此设置即可。
1 | Host github.com |
至此,就成功在 travis 中添加了 SSH 密钥且能建立链接。可用于且不限于:
- 推送 CI 编译后的文件 / 结果
- 免费构建私有项目(这个可能会违反 TOS,不建议…)
- etc….
参考
- Connecting to GitHub with SSH
- Encrypting Files
—EOF—