ssh

Secure Shell(SSH)是一种加密传输协议,常用于连接Unix/Linux服务器。默认端口TCP 22.

常见的客户端有:putty、Xshell、SecureCRT、Termius(ios替代品)、MobaXterm

最常见的密钥大致分为两种:putty相关的.ppk文件和openssh相关的rsa/.pub。

关于ssh,主要是windows和linux平台软件的差异,比如.ppk,linux里ssh不支持.ppk文件,需要转化。

各种不同的密钥文件

  • open-ssh生成的密钥对,公钥和私钥是分开的。id_rsa(id_rsa.pub)分别为私钥(公钥)。
  • ppk文件由Putty生成,也称为PuTTY Private Key,单个文件包含了公钥和私钥。
  • pem文件可以包含任何东西: 具有公共密钥的证书、SSH公钥、公钥私钥、具有公钥私钥的证书。 PEM是一个文本文件,可以用记事本打开。

文件转化

以Ubuntu为例,简要说明.ppk文件的转化:

首先需要安装putty-tools:

sudo apt install putty-tools -y

#ppk 转换成 rsa/rsa.pub
puttygen /path/.../puttykey.ppk -O private-openssh -o ~/.ssh/id_rsa
puttygen /path/.../puttykey.ppk -O public-openssh -o ~/.ssh/id_rsa.pub

#ppk 转换成 .pem
puttygen puttykey.ppk -O private-openssh -o ~/.ssh/newkey.pem

#rsa 转换成 .ppk
puttygen openssh_rsa_keyname -o keyname.ppk

chmod 600 ~/.ssh/id_rsa
chmod 644 ~/.ssh/id_rsa.pub
chmod 400 ~/.ssh/keyname.xxx

Winodws就简单许多,打开puttygen.exe,按照文本说明进行操作即可。

疑问

  • pem和pub什么区别

    pem里可以是公钥也可以是私钥,而.pub是 openssh 使用的公钥

    file .ssh/id_rsa
    .ssh/id_rsa: PEM RSA private key
    
    file .ssh/id_rsa.pub 
    .ssh/id_rsa.pub: OpenSSH RSA public key
    
    

    一个是RSA私钥,一个是RSA公钥。

  • 不同用户可共用密钥吗

    可以,需要把pub文件放到对应的文件中去,test_user 如果是本地用户,则把id_rsa放到 /home/test_user/.ssh/下面,如果远程用户,则把id_rsa.pub的内容放追加到 /home/test_user/.ssh/authorized_keys 文件里。

参考资料

www.ssh.com

www.openssh.com

阅读原文


本文收藏来自互联网,仅用于学习研究,著作权归原作者所有,如有侵权请联系删除

markdown @tsingchan

引用格式为收藏注解,比如本句就是注解,非作者原文。