利用 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原理