5

我让 Jenkins 克隆了 Git 存储库

ssh://user@ip/repo/

一切正常,但我需要使用詹金斯不支持的密码登录。有没有办法使用 URL 中的密码登录?安全对我来说不是问题。它最终应该是,我一开始以为是这样的:

ssh://user:pass@ip/repo/

但它不起作用。谢谢!

更新 #1: git repo 在同一台服务器上。

4

2 回答 2

6

SSH 要求您输入密码的原因有两个:

  • 在服务器上找不到公钥,这意味着 ssh 默认为用于 ssh 会话的帐户,询问其密码
  • 找到了公钥,但私钥受密码保护。

第一种情况意味着 ssh 无法正常工作:您永远不必输入用于 ssh 的帐户的密码。
这个想法是即使所有 ssh 连接都将使用一个唯一帐户,也能够对某人进行身份验证。输入该唯一帐户的密码会破坏目的。

第二种情况应该很容易解决,通过运行ssh-agentandssh-add
这将允许您输入密码(在将密钥添加到代理时不止一次)。

于 2013-04-29T07:24:40.043 回答
3

有人可以纠正我,我认为这是不可能的,因为密码提示实际上来自 SSH 服务器,而不是来自 SSH 应用程序。查看我的本地 SSH 帮助页面,无法从命令行将密码传递给 SSH。这也有一些严重的安全风险,因为密码将以纯文本形式提供。

有了这个,你最好(也是更安全)的赌注是做一个不需要密码来设置的公钥/私钥对。根据您的环境,使用 Jenkins 和 Git 进行此设置可能会有些挑战,但最终完全值得。

于 2013-04-28T21:06:57.027 回答