![SSH:如何在仅知道密码短语的情况下进行连接?](https://linux22.com/image/62495/SSH%EF%BC%9A%E5%A6%82%E4%BD%95%E5%9C%A8%E4%BB%85%E7%9F%A5%E9%81%93%E5%AF%86%E7%A0%81%E7%9F%AD%E8%AF%AD%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E8%BF%9B%E8%A1%8C%E8%BF%9E%E6%8E%A5%EF%BC%9F.png)
简短的问题:
我有一个更新 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 登录,您可以自己完成此操作,但既然您不能,则需要其他人为您执行此操作。