SSH:如何在仅知道密码短语的情况下进行连接?

SSH:如何在仅知道密码短语的情况下进行连接?

简短的问题:

我有一个更新 git 存储库的任务。我收到的信息如下:主机、端口、用户名和 ssh 密钥的密码,以及密钥类型为 rsa 的信息。如何配置电脑无需密码即可连接?有足够的信息来做到这一点吗?

细节:

  • 我的操作系统:XUbuntu 14.04
  • 很明显,密码是 ssh 密钥的密码,而不是密码。
  • 我无权访问服务器。我无法以~/.ssh/任何方式对其进行配置。
  • 我没有收到钥匙本身。

长话短说/我如何尝试解决这个问题:

  • 去谷歌上查询。我使用ssh-keygen -t rsa输入密码生成了 ssh 密钥。然而,每次我生成密钥时,它都是不同的,这导致我另一个(子)问题:是否有可能获得 ssh-rsa 密钥仅有的密码?换句话说,是不是我收到的信息太少了? (问题是我对 ssh 和密码学的了解太少,我无法在 Google 上找到这个附加问题的答案;我不知道 - 也找不到信息 - 密钥是否基于密码(就像散列的情况一样)或者它是否是附加或次要信息(例如带有盐的散列或类似于使用 TrueCrypt 加密的情况,它仅使用密码加密标头,并且使用存储在标头中的密钥对整个光盘进行加密)。)
  • 最初我尝试使用~/.ssh/config文件,但为了确认问题出在密钥内,我对其进行了备份、清除,现在我将密钥生成为~/.ssh/id_rsa.
  • 我试图找出是否应该采取完全不同的步骤(不是使用ssh-keygen -t rsa而是通过另一种方式生成它),但是我找不到任何东西。

附加信息

  • 我还收到了一个有效的密码。我可以用它连接到 git 存储库,但我正在寻找一种仅使用密钥的方法。
  • 不允许使用 ssh 连接到交互式 shell。仅支持 ssh 上的 git。

答案1

您无法从密码中派生私钥。密码用于加密私钥;需要私钥才能与远程服务器进行加密对话。您没有足够的信息,无法在没有密码的情况下进行连接。

此外,共享私钥也是非常糟糕的安全做法。更好的方法是生成您自己的密钥对并将您的公钥添加到远程服务器

~/.ssh/authorized_keys

如果您可以通过 SSH 登录,您可以自己完成此操作,但既然您不能,则需要其他人为您执行此操作。

相关内容