如何在.gitlab-ci.yml的变量中存储SSH私钥等多行字符串
你可以直接使用YAML原生的字面量块标量语法(用|标记)来存储多行字符串,这个语法会完整保留你输入的换行符和格式,完全匹配SSH私钥、known_hosts这类内容的格式要求。
安全提示:将SSH私钥这类敏感信息直接写在
.gitlab-ci.yml中会随代码库提交公开,存在极高的泄露风险,非特殊测试场景不建议这么使用,生产环境请优先使用GitLab自带的CI/CD加密变量存储敏感内容。
完整写法示例:
image: creatiwww/docker-compose:latest services: - docker:dind variables: ssh_private_key: | -----BEGIN RSA PRIVATE KEY----- MIIEpQIBAAKCAQEAriS0+ayniFDo+y7GcNb62mupuM4EFBX+gdCEr/K8wZd/mFxY mSGoVX2CdCDy6k+LSWbBBFtus575187fHNy045gJzI5D0PSGmPsWYqu/Rst43Qgr R6CAOBqapM9LVBopH0pjPTv5/8iJA/G+Mw6MXGzQAAuA0ZyJoDy7d3GSVKG+k/k0 smZ+FKjDxZ3gn/e3nc5XABSywZlT91RHT6BImrxizvgHkkks1J8RBl9QoIvMSiwD 7sEElAABAoGBAN7kSADAK5vtqvFQsMAPEJLXdv5mP0IEe3IamL3MNlUYpb7yGqBr 6Jmopg+vpbkXZeMpC6uYu9F5Y6etV8yslTERxhP3yE+Fg2FFXc53jDOzkkCu+aey PypGWE9hZXK5Wx9rqi83b9d59bCcMY5kouDSUNTmYVC3H+OxuX+2hgnJAoGBAMgC toxjVLp+gDhRUqxe1MuTznq4GGzXB9/LuGYI078pHlYjHmWIKfHtKv5O6HqYz2pi 8mMNqt0vZC+Wbt5kZnE3Om1CgEvAPsxMUaAWq7iXSfEhqRvfwE5uJwkSxiTnRRWH 4tzSjGCP3+GqVYxUliELvwMdS1Qbo103lwVgoR4iLSrr/vWTb5NG3ms=... -----END RSA PRIVATE KEY----- ssh_known_hosts: | # xx.xx.xx.xx:22 SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5 xx.xx.xx.xx ssh-rsa AAAX20sVRmUkgOn8Db46ikEhC2zBZYZ7Lv2AsaHV+isNB3QYfNKGDEMj9CvWByezJR/3DqCgK/IGLH0JfMZK9H9HR7/P1aeY7bVAg07Gdt/vYrgQtaNtkdK3qD/C0oUSQAE1a2vOzBGx1HZgtORTh8eN/h5bKW0/2GVlS+9K1MR7peECpgOBo3fu2RPwB/KFlUcrtZkdE8Em/thbXFWE/VGBwh/eoNB1 # xx.xx.xx.xx:22 SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5 xx.xx.xx.xx ecdsa-sha2-nistp256 LhpT93b8rE/exS/M9QyoyjoeEuioXhffu62Ayxxl4UewOuASHaF4ylQIJSNlK+groH6Iv1QvPVKFe/n1uF1Xvk= # xx.xx.xx.xx:22 SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5 xx.xx.xx.xx ssh-ed25519 AAAAC3Nz/O/Dod2CitLhIqnePT51H
使用的时候直接正常调用变量即可,|语法会自动保留所有换行,不需要额外做转义或者换行符替换处理。
内容的提问来源于stack exchange,提问作者Santhosh
相关产品推荐
相关产品推荐

