ubuntu 下的 svn-ssh

ubuntu 下的 svn-ssh

我在 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 可以使用的格式。

  1. 打开 PuttyGen
  2. 单击“加载”
  3. 加载你的私钥
  4. 转到 Conversions->Export OpenSSH 并导出你的私钥
  5. 将您的私钥复制到~/.ssh/id_dsa(或id_rsa)。
  6. 使用 ssh-keygen 创建 RFC 4716 版本的公钥

    ssh-keygen -e -f ~/.ssh/id_dsa > ~/.ssh/id_dsa_com.pub

  7. 将 RFC 4716 版本的公钥转换为 OpenSSH 格式:

    ssh-keygen -i -f ~/.ssh/id_dsa_com.pub > ~/.ssh/id_dsa.pub

  8. 修复私钥文件的权限:

    chmod 600 ~/.ssh/id_dsa

取自: https://stackoverflow.com/questions/2224066/how-to-convert-ssh-keypairs-generated-using-puttygenwindows-into-key-pairs-use

相关内容