简短的问题:
我有一个更新 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 登录,您可以自己完成此操作,但既然您不能,则需要其他人为您执行此操作。