我让 Jenkins 克隆了 Git 存储库
ssh://user@ip/repo/
一切正常,但我需要使用詹金斯不支持的密码登录。有没有办法使用 URL 中的密码登录?安全对我来说不是问题。它最终应该是,我一开始以为是这样的:
ssh://user:pass@ip/repo/
但它不起作用。谢谢!
更新 #1: git repo 在同一台服务器上。
SSH 要求您输入密码的原因有两个:
第一种情况意味着 ssh 无法正常工作:您永远不必输入用于 ssh 的帐户的密码。
这个想法是即使所有 ssh 连接都将使用一个唯一帐户,也能够对某人进行身份验证。输入该唯一帐户的密码会破坏目的。
第二种情况应该很容易解决,通过运行ssh-agent
andssh-add
。
这将允许您不输入密码(在将密钥添加到代理时不止一次)。
有人可以纠正我,我认为这是不可能的,因为密码提示实际上来自 SSH 服务器,而不是来自 SSH 应用程序。查看我的本地 SSH 帮助页面,无法从命令行将密码传递给 SSH。这也有一些严重的安全风险,因为密码将以纯文本形式提供。
有了这个,你最好(也是更安全)的赌注是做一个不需要密码来设置的公钥/私钥对。根据您的环境,使用 Jenkins 和 Git 进行此设置可能会有些挑战,但最终完全值得。