我在 Windows 上使用 putty+pageant 来通过 ssh 访问 svn 服务器。我有可用的私钥。
我现在正尝试在 Ubuntu VM 上使用相同的密钥。
我在 Firefox 中使用了 .p12 键,效果很好。
问题是我不能使用 svn。我尝试按照在互联网上的几个地方找到的说明进行操作,但没有用。
问题是我不知道我是否做对了一切。
我正在使用 .p12 文件格式作为私钥。
我将密钥重命名为identity
,并将其复制到我的帐户的 .ssh 文件夹中。我还更改了 /etc/ssh/ssh_config 文件,取消注释了以下行:
身份文件 ~/.ssh/identity
我使用以下命令:
svn co svn+ssh://我的用户名@path_to_rep
结果依然是
svn:网络连接意外关闭
我删除了 Subversion 配置文件的 [tunnel] 部分中的 -q 选项,现在我可以看到以下内容:
Agent admitted failure to sign using the key.
Agent admitted failure to sign using the key.
Agent admitted failure to sign using the key.
Permission denied (publickey).
svn: Network connection closed unexpectedly
答案1
openssh 使用与 putty 不同的密钥格式。您需要使用puttygen
将 putty 密钥转换/导出为 openssh 可以使用的格式。
- 打开 PuttyGen
- 单击“加载”
- 加载你的私钥
- 转到 Conversions->Export OpenSSH 并导出你的私钥
- 将您的私钥复制到~/.ssh/id_dsa(或id_rsa)。
使用 ssh-keygen 创建 RFC 4716 版本的公钥
ssh-keygen -e -f ~/.ssh/id_dsa > ~/.ssh/id_dsa_com.pub
将 RFC 4716 版本的公钥转换为 OpenSSH 格式:
ssh-keygen -i -f ~/.ssh/id_dsa_com.pub > ~/.ssh/id_dsa.pub
修复私钥文件的权限:
chmod 600 ~/.ssh/id_dsa