关于 SSH 公钥与私钥

利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题,且 SSH客户端适用于多种平台。使用公钥登入远程服务器是一种基于信息安全性来考虑的

一. 使用公钥登入远程 linux 服务器

如果主机没有安装 OpenSSH 请先安装,现在的 Linux 服务器和 Linux 系统默认都安装了 OpenSSH 软件,直接在终端进行 SSH 等入管理操作既可

1. 查看 SSH Keys
ls -al ~/.ssh

在列出的文件中如果有 id_rsa 以及id_rsa.pub 文件,可以接触 cat 来查看内容;如果没有找到相关的公、私钥,则需要生成公私钥

2. 生成 SSH KEY

使用命令

ssh-keygen -t rsa -C "[email protected]" 

[email protected] 可以替换为你的邮箱,文件生成目录在 SSH KEY 生成后终端会显示相关信息,可以使用默认路径也可以在生成 SSH KEY 的过程中自定义

输出信息如下

[root@server ~]# ssh-keygen -t rsa -C "[email protected]" 
Generating public/private rsa key pair. #提示正在生成 rsa 密钥对
Enter file in which to save the key (/home/usrname/.ssh/id_rsa): #询问公钥和私钥存放的位置,回车用默认位置即可

Enter passphrase (empty for no passphrase):  #询问输入私钥密语,输入密语
Enter same passphrase again: #再次提示输入密语确认

Your identification has been saved in /home/usrname/.ssh/id_rsa. #提示公钥和私钥已经存放在 /root/.ssh/目录下
Your public key has been saved in /home/usrname/.ssh/id_rsa.pub.
The key fingerprint is:
ba:dd:cc:eb:69:f2:eb:99:1a:9c:61:91:8d:8f:50:d0 [email protected]
The key's randomart image is: #提示 key 指纹 
+--[ RSA 2048]----+
|      .o.        |
|       .E+       |
|      . + .      |
|       . +       |
|        S .      |
|       + o       |
|      . +        |
|       o.=.+     |
|      . oB&o     |
+-----------------+

说明

  • 可以添加参数 -b 1024 指定密钥对字长,如 ssh-keygen -b 1024 -t rsa -C "[email protected]" 表示采用长度为 1024 字节的公钥/私钥对(最长 4096 字节)。一般 1024 或 2048 就足够满足安全需要了,如果字节太长相对的加密解密需要的时间也增长
  • -t rsa 表示采用 rsa 加密方式生成公钥/私钥对,除了 rsa还dsa 方式,rsa 方式最短不能小于 768 字节长度。可以通过 man ssh-keygen 查看 ssh-keygen 其他参数选项。
  • 在生成密钥对的过程中会询问密钥对保存地址,回车即放置默认地址,也可以自定义
  • 在生成密钥对的过程中会被询问 输入密码短句( Enter passphrase (empty for no passphrase) )密码短句(passphrase) 即使用一个短语或者一句话作为密码输入,再由系统内部的加密或是散列算法生成虚拟密码后,进行下一步的认证。passphrase 增强了安全性不易被破解。如果默认回车,也就是代表不使用密码短句。建议输入密码短句,这样如果只是生成密钥对而不设置密码短语,那么如果私钥丢失了,麻烦可能会比丢失用户名密码还严重
  • [email protected] 这个可以自定义
3. 拷贝公钥到被管理的服务器上

在管理的远程服务器上把本地 linux 主机公钥拷贝到被管理服务器上要进行自动登陆的用户目录下

4. 使用密钥对进行远程登陆
[root@server ~]# ssh root@host -p port
Enter passphrase for key '/root/.ssh/id_rsa':      #提示输入密码短语,请输入刚才设置的密码短语
Last login: Sun Oct 10 11:32:14 2010 from 192.168.0.1
[peter@client ~]$ 

我这里是设置了密钥短语,正确输入密钥短语既可登入。指定登入用户身份 root 、主机以及端口 port。默认端口是 22

相关链接

[1] SSH协议详解
[2] SSH 密钥类型的的选择(RSA, DSA or Other)
[3] 使用ssh公钥密钥自动登陆linux服务器
[4] SSH 有关密钥和私钥 的那些事儿
[5] 中间人攻击(man-in-the-middle attack):你和互联网中间的第三人
[6] SSH使用密钥登录并禁止口令登录实践
[7] Https协议简析及中间人攻击原理
[8] 数字签名是什么?
[9] 阮一峰的日志之SSH原理与运用
[10] SSH 协议基础
[11] 图解SSH原理

猜你喜欢

转载自blog.csdn.net/qq_36148847/article/details/79549230