(unix,这里:ubuntu 10.4)
我知道如何在 unix(ssh-keygen)中创建 ssh 密钥对以及如何在 windows(puttygen)中创建它。我的情况缺少的部分是在 unix shell 中使用在 windows(puttygen)中生成的密钥对。
在这种特殊情况下,我需要将公钥放在哪里,以便将其用作 git 中的 ssh 密钥。
答案1
取决于您需要哪个密钥...
私钥——用于登录从将 Unix 系统转换为另一个 Unix 系统
您必须首先使用 PuTTYgen 将密钥从 PuTTY 格式转换为 OpenSSH 可以使用的格式。
在 Windows 版本的 PuTTYgen 中,使用转换 → 导出 OpenSSH 密钥菜单项;
在 Linux 版本中,
puttygen mykey.ppk -O private-openssh -o mykey
。
仅公钥 – 用于从 Windows 登录到Unix
参见丹尼尔的回答。
答案2
Puttygen 窗口包含一个文本区域,其中有 SSH 所需格式的公钥。
复制它,并将其添加到服务器上的文件中,~/.ssh/authorized_keys
单独一行。确保文件和目录不能被组和其他人读取/写入,即运行chmod go-rwx ~/.ssh ~/.ssh/authorized_keys
。
然后服务器将使用私钥进行身份验证来接受您的登录。
答案3
好的,我想我没有表达清楚,但找到了解决方案:
- 启动 puttygen
- 加载私钥
- 菜单转换|导出 OpenSSH 密钥
- 保存在某处,打开,将内容复制到剪贴板,在 Linux 上粘贴到文件:$HOME/.ssh/id_dsa
- (可选)复制文本区域的内容“用于粘贴到 OpenSSH authorized_keys 文件中的公钥”,在 Linux 上粘贴到文件:$HOME/.ssh/id_dsa.pub
您现在可以从 shell 使用此 SSH 密钥登录远程系统。
附注:要在 Linux shell 中无缝使用 Windows Putty 中的 git 连接到 git,请在 Putty 会话中设置以下选项:
(并且您必须将公钥放在 ~/.ssh/authorized_keys 中,当然..)