SSH 密钥登录
1.前言
之前ssh一直用的是密码登录,虽然不是弱密码,不至于被别人爆破,但是一直被扫,虽然安装了Fail2Ban,但是治标不治本,爆破日志每天几千条,很烦.在网上查找资料后,决定采用SSH 密钥登录.
2.密钥是什么
SSH 密钥登录采用的是非对称加密,每个用户通过自己的密钥登录。其中,私钥必须私密保存,不能泄漏;公钥则是公开的,可以对外发送。它们的关系是,公钥和私钥是一一对应的,每一个私钥都有且仅有一个对应的公钥,反之亦然
3.准备工具
- Termius 非常好用的SSH工具
4.生成密钥
- 登录服务器.进入 ssh目录.如果提示目录不存在,输入
ssh localhost
手动输入密码登录下即可
.ssh 是记录密码信息的文件夹,如果没有登录过root的话,就没有 .ssh 文件夹,因此登录 localhost ,并输入密码就会生成了
- 生成密钥.命令
ssh-keygen
,通常做法
$ ssh-keygen -t rsa
执行后 提示 Enter file in which to save the key (/root/.ssh/id_rsa):
提示保存密钥的文件,默认即可.按回车
如果已经有重复的密钥文件,会提示是否重写? 选则 y
Enter passphrase (empty for no passphrase):
提示输入密码锁,留空就行按回车.
密钥锁码在使用私钥时必须输入,这样就可以保护私钥不被盗用。当然,也可以留空,实现无密码登录。
Enter same passphrase again
提示再输入一遍密码锁.继续回车
出现这样的提示,说明生成RSA公钥私钥已经成功.
ls
查看是否存在 id_rsa 和 id_rsa.pub,id_rsa 为私钥,id_rsa.pub 为公钥
5.服务器配置
- 输入以下命令
cat id_rsa.pub >> authorized_keys
将公钥文件追加到authorized_keys文件中
-
修改SHH配置使用密钥登录
vi /etc/ssh/sshd_config
# 启动ssh密钥登录 RSAAuthentication yes PubkeyAuthentication yes
修改完成后,保存.重启SSH
sudo /etc/init.d/ssh restart
-
最后将公钥和私钥文件下载到客户机保存即可
6.Termius设置
开始添加 ssh key
将私钥文件拖进去即可.公钥可以不填写,然后保存
- 然后在Hosts里把密码删除掉,添加key.选择刚才的key
最后点击Connect
开始连接,成功连接.
- 密钥登陆成功后关闭密码登录
# 允许密码登录(禁用改为no)
PasswordAuthentication yes
保存重启SSHsudo /etc/init.d/ssh restart
.然后关闭连接.再尝试用密码登录.
提示登录错误,这样就可以保证只能用密钥登录了.
7.其他
由于我用的是Termius免费版,不支持多设备同步.所以我用1Password进行保存IP和私钥信息.也是可以的
Comments NOTHING