OpenSSH与SSH2的public key转换

最近需要在两台机器之间做public key认证,可是忙了半天发现认证总是失败,于是使用-v和debug模式分别运行ssh和sshd,通过输出发现是server的机器不认client发过来的pubkey。接着又折腾了一番才搞清楚原来这两台机器装的是不同版本的ssh,一个是OpenSSH(Ubuntu),一个是SSH2(SLES)。

对于SSH2,其pubkey的写法是,在~/.ssh2/authorization中写如下一行:

1
Key xxx.xx

其中xxx.xx即为client的pubkey文件名。

另外,这个pubkey需要是SSH2的格式,而OpenSSH的机器ssh-keygen默认生成的是OpenSSH的格式,需要这样转换一下:

1
ssh-keygen -ef id_rsa.pub > for-ssh2.pub