上次防止服务器被ssh爆破的时候,提到了密钥加密。但是当时只是知道要这么做,也不理解为什么可以这么做。 所以,这不,刚学了密码学,对密钥的加密就感觉十分亲切。 所以就写一篇的文章记录一下配置密钥

公钥与密钥

加密分为对称加密非对称加密。而我们常用的加密解密都用同一样的密码的就是对称的。 而公钥私钥的密钥加密是非对称的加密(也叫公钥密码)

通俗点来说,公钥像一把。你把锁寄给对方,对方用你的锁锁住了包裹后发给你。 私钥就像钥匙。你收到他的包裹后用你的钥匙打开。

本文也不细聊公钥私钥原理了 (其实我就是不懂,菜)

本地生成一对公钥私钥

首先在本地生成一对公钥私钥

1
2
3
4
cd .ssh

~/.ssh
➞  ssh-keygen -t rsa

生成后会多出两个文件id_rsa.pubid_rsa即为公私钥

1
2
3
~/.ssh
➞  ls
authorized_keys  id_rsa  id_rsa.pub  known_hosts

发送到远程

使用SCP把公钥发送到远程电脑

1
2
3
4
~/.ssh
➞  scp ./id_rsa.pub root@xx.xx.xx.xx:~/.ssh
root@sparrooow.site's password:
id_rsa.pub                                                                           100%  571     6.6KB/s

追加公钥

先用密码登录远程电脑(最后一次用密码登录了,事实上并不是)

1
2
~/.ssh
➞  ssh root@xx.xx.xx.xx

创建一个在.ssh文件夹里创建authorized_keys文件(有了就跳过),用于保存公钥信息。权限600,

1
2
3
cd /root/.ssh/
touch authorized_keys
chmod 600 /root/.ssh/authorized_keys

追加刚才发的公钥到authorized_keys

1
cat id_rsa.pub >> authorized_keys

至此,完事。

完成

尝试用本地电脑登陆一下

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
➞  ssh root@xx.xx.xx.xx 
Last login: Mon Jun 22 20:41:59 2020 from 223.104.93.83
//
//   █████▒█    ██  ▄████▄   ██ ▄█▀       ██████╗ ██╗   ██╗ ██████╗
// ▓██   ▒ ██  ▓██▒▒██▀ ▀█   ██▄█▒        ██╔══██╗██║   ██║██╔════╝
// ▒████ ░▓██  ▒██░▒▓█    ▄ ▓███▄░        ██████╔╝██║   ██║██║  ███╗
// ░▓█▒  ░▓▓█  ░██░▒▓▓▄ ▄██▒▓██ █▄        ██╔══██╗██║   ██║██║   ██║
// ░▒█░   ▒▒█████▓ ▒ ▓███▀ ░▒██▒ █▄       ██████╔╝╚██████╔╝╚██████╔╝
//  ▒ ░   ░▒▓▒ ▒ ▒ ░ ░▒ ▒  ░▒ ▒▒ ▓▒       ╚═════╝  ╚═════╝  ╚═════╝
//  ░     ░░▒░ ░ ░   ░  ▒   ░ ░▒ ▒░
//  ░ ░    ░░░ ░ ░ ░        ░ ░░ ░
//           ░     ░ ░      ░  ░
//
[root@VM_0_13_centos ~]#

完美!