我正在与Travis CI进行持续集成。这是我的配置:
before_install:
- echo -e "Host *\n\tStrictHostKeyChecking no\n" > ~/.ssh/config
- echo -e $id_rsa.pub > ~/.ssh/id_rsa.pub
- echo -e $id_rsa > ~/.ssh/id_rsa
- sudo chmod 600 ~/.ssh/*
- sudo chmod 644 ~/.ssh/config
- eval `ssh-agent -s`
- ssh-add ~/.ssh/id_rsa
...
$ ssh-add ~/.ssh/id_rsa
Enter passphrase for /home/travis/.ssh/id_rsa:
在ssh-add步骤中,它询问我密码,并停止部署。我已经用另一个没有密码的ssh密钥进行了测试,但它不能解决我的问题。
我已经测试了很多解决方案,如yes $MY_PASSWORD | ssh-add ~/.ssh/id_rsa
或echo "$MY_PASSWORD" | ssh-add ~/.ssh/id_rsa
,但它不工作。
我已经添加到我的.ssh/config(你可以在我的配置中看到它):
Host *
StrictHostKeyChecking no
不是应该让别问我密码吗?
也许有人有一个主意吗?谢谢您的支持:)
3条答案
按热度按时间vhmi4jdf1#
您使用的是加密的私钥(这很好),但它需要密码(这对脚本来说很糟糕)。有几种可能性,你可以继续:
sshpass
工具解锁密钥(在脚本中将密码存储在密钥旁边基本上会破坏加密密钥的安全性)2jcobegt2#
我已经解决了我的问题。我有不同的问题,在基本利用环境变量和回声。
我的问题部分是因为糟糕的ssh文件,因为我使用rsa密钥和密码。在我的情况下,它并不重要,有一个密码,所以我删除了它。对此,我使用了jakuje的答案。我的ssh密钥现在已经正确安装在每个版本中了。
谢谢您的帮助!
cngwdvgl3#
你可以做
别忘了设置: