使用URL密码进行SSH登录

5
我使用Jenkins克隆Git仓库的地址为
ssh://user@ip/repo/
。这一切很顺利,但是我需要使用密码登录,而Jenkins不支持密码登录。有没有办法在URL中使用密码进行登录呢?对于我来说,安全性不是问题。我以为以下方式可以实现:
ssh://user:pass@ip/repo/
但是它并不起作用。谢谢!
更新#1:git仓库位于同一台服务器上。

你需要SSH连接本身的密码还是私有SSH密钥对的密码? - Steven V
我希望使用实际的SSH密码。 - Ryan
2个回答

6
有两个原因导致 SSH 要求您输入密码:
  • 服务器上找不到公钥,这意味着 ssh 使用会话所使用的账户作为默认值,并要求输入该账户的密码。
  • 公钥已找到,但私钥受到密码保护。
第一种情况意味着 ssh 未正常工作:您绝不应该输入用于 ssh 的账户密码。
想法是能够验证某个人,即使所有 ssh 连接都将使用一个唯一的账户。输入该唯一账户的密码会使此目的无效。
第二种情况应该很容易解决,通过运行 ssh-agentssh-add
这将允许您不必输入密码(在添加密钥到代理时只需输入一次)。

是的,SSH密钥是问题所在。谢谢! - Ryan

3

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

因此,最好(也更安全)的方法是使用公钥/私钥对来进行设置,这不需要密码。根据您的环境,使用Jenkins和Git进行此设置可能有些具有挑战性,但最终完全值得。


我刚刚花了一个小时学习这个确切的东西——git凭据对我没有任何作用,我想撞墙。但是在我设置SSH与公钥/私钥配合工作以便不必输入密码后(链接在此:https://www.debian.org/devel/passwordlessssh),它立即起作用了。我目前正在经历解决问题的“高峰”。谢谢。 - Lincoln Bergeson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接