让 secureCRT 和 OpenSSH 共享 Private Key

January 30, 2008 – 4:14 pm

TerminalsecureCRT 是 Windows 下一款非常优秀的 SSH 客户端软件(商业软件),目前它的最新版本是 6.0 ,从 5.5 版开始支持 OpenSSH 格式的 Private Key ,并可以把它自己的 Private Key 转换为 OpenSSH 格式。

OpenSSH 是 Linux 下广泛使用的 SSH 程序。我自己在前一段时间广泛使用的一对密钥是通过 secureCRT 生成的,最近需要在 Linux 下也使用密钥的方式进行 SSH 连接,维护多对 SSH 密钥是比较麻烦的事情,而且容易搞混,可是私钥格式并没有统一标准,各个程序之间的格式通常是不兼容的。

在网上搜索了一下,发现 secureCRT 从 5.5 开始支持 OpenSSH 格式的私钥了,当然,为了避免重新生成一对密钥,它还有把 secureCRT 格式的密钥转换为 OpenSSH 格式密钥的工具,这下就方便多了。

下面是转换步骤:

  1. 打开菜单 Tools 中的“Convert Private Key to OpenSSH Format…” 。
  2. 选择自己的私钥文件,通常是叫做 Identity
  3. 选择要保持的 OpenSSH 格式的私钥文件,这里命名为 Identity_openssh
  4. 它会生成 Identity_opensshIdentity_openssh.pub 两个文件,分别是私钥和公钥。
  5. 打开 Identity_openssh ,复制文件内容。
  6. 如果你的 ~/.ssh/identity 有你以前生成的私钥的话,记得备份一下。然后执行 cat > ~/.ssh/identity ,并把文件内容粘贴上去,按 Ctrl+D 结束。

这样 Linux 里的 ssh 就可以使用和 secureCRT 同样的 Private Key 了,换句话说,导入了 secureCRT 生成的公钥的主机都可以直接在 Linux 里面使用私钥登录了! :)

secureCRT 确实是一个非常不错的软件,新版本里面还添加了对 Emacs 的特别支持,有一个选项可以选择将 Alt 键作为 Meta 键发送,而不是被 Windows 作为访问菜单的快捷键,这样就不用一个一个地手工映射快捷键了。

下面还附上将 secureCRT 生成的公钥导入到远程主机上的方法:

  1. 连接到远程主机。
  2. 打开 secureCRT 生成的公钥文件,通常叫做 Identity.pub 。
  3. 复制公钥文件的内容。
  4. 在远程主机上输入 cat > /tmp/identity.pub
  5. 在 secureCRT 中将公钥内容粘贴上去,按下 Ctrl+D 结束输入。
  6. 导入公钥: ssh-keygen -X -f /tmp/identity.pub >> ~/.ssh/authorized_keys2
  7. 确保 authorized_keys2 文件的权限正确: chmod 600 ~/.ssh/authorized_keys2

这样就可以使用密钥进行登录了。

  1. One Response to “让 secureCRT 和 OpenSSH 共享 Private Key”

  2. SecureCRT 终于把这个功能做进去了呀…… 想当年就是因为这个,不得不转用 cygwin 和 PuTTY 。好在这两者也很好用。

    By Rhythm on Jan 30, 2008

Post a Comment