SSH关闭远程密码登录---Window&Linux客户端证书登录&window找不到ssh-keygen

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zt_fucker/article/details/73496464

前几天我阿里云的服务器被暴力破解,很是不爽,于是搞了这个key证书免密码登录。

首先在阿里云的ECS服务器内检查是否安装sshd
获取秘钥:如果没看前面的git上传github的文章。依次键入:

[root@iz2ze8w7169ei61c5c1il5z ~]# vi /etc/ssh/sshd_config
修改为:PasswordAuthentication no
此时先设置为yes,等设置完客户端秘钥之后再设置为no
[root@iz2ze8w7169ei61c5c1il5z ~]systemctl restart sshd.service
再使用xShell就不能进行登录了
【Server端,需要远程连接的服务器】

[root@iz2ze8w7169ei61c5c1il5z ~]#ssh-keygen
Generating public/private rsa key pair. 
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
...
一路回车,默认生成的秘钥在、/root/.ssh/下
[root@iz2ze8w7169ei61c5c1il5z .ssh]# pwd
/root/.ssh
[root@iz2ze8w7169ei61c5c1il5z .ssh]# ll
total 16
-rw------- 1 root root  789 Jun 20 11:23 authorized_keys
-rw------- 1 root root 1679 Jun 16 15:54 id_rsa
-rw-r--r-- 1 root root  399 Jun 16 15:54 id_rsa.pub
-rw-r--r-- 1 root root 1550 Jun 20 10:57 known_hosts

"公私钥"认证方式原理
1、首先在client上创建一对公私钥,
公钥文件:~/.ssh/id_rsa.pub
私钥文件:~/.ssh/id_rsa
2、然后把公钥放到server上
~/.ssh/authorized_keys
3、client登录server过程
client保留私钥,在使用ssh登录server时,ssh程序发送私钥去和server上的公钥做匹配,若匹配成功则可以登录。

到现在服务端的准备工作结束了,后面进行客户端的配置。

准备了两种操作系统的客户端:Window 10客户端和Linux Centos 7 客户端
W(Windows)
C(Centos)
首先是C:
[root@ceshi ~]# ssh-keygen
一路回车,会在~目录下生成.ssh文件夹。
[root@ceshi .ssh]# pwd
/root/.ssh
[root@ceshi .ssh]# ll
总用量 12
-rw------- 1 root root 1671 620 10:53 id_rsa
-rw-r--r-- 1 root root  392 620 10:53 id_rsa.pub
-rw-r--r-- 1 root root 1585 620 11:07 known_hosts
[root@ceshi .ssh]# more id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAxs5W2gIw5paR+3cXmI8NsttblqeuFv8m3HLoZPMXQ7/ZTePJvCijdzUxn+bxXtthEVdcMgWid7ET86sZ5fPJ75KprJ/vIzOqOWmTTUgbNrqV2ytdPY8wkswwAmZlSiJdGQJgsJuGTtdxU6HN/k4PWVykD88NT+jklNsIViUvPzwEG4hYsMVDVONFDgD0pKgLyfr4uvOd7NZi
wVhyjPF42ATASj8efPCuwadGewp2nB5U+Q7eJOuvpvHfcTw55XM5rhpyNydE7QyXrOw8GOJFXCc1lFV/rJ/m9UO9fsIER9DOgy3uQdGL4M6E+NaM1kTfO/QwAkrGqmm5V0fgNhvPQeCu/w== root@ceshi

[root@ceshi .ssh]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@YourRemoteIP
ssh-copy-id操作会自动保存在对方主机的/root/.ssh/authorized_keys 文件中去。
[root@ceshi .ssh]# ssh root@YourRemoteIP
    不需要密码成功连接上success

Centos系统下没什么大的问题,主要是Windows系统出现问题比较多。
ssh-key验证的流程是一样,原理就是发送公钥然后验证。
但是Windows下生成id_rsa.pub遇到如下问题:

①:这里写图片描述

解决办法:下载一个git bash https://git-scm.com/download

这里写图片描述

因为之前生成过key所以会提示是否覆盖重写秘钥文件。第一次生成没有此次提示。

②:这里写图片描述

解决办法:如果你搞懂了一点ssh免密码登录的流程,你就会知道点原理,使用其他操作来达到scp-copy-id的效果,反正最终实现的结果都是一样的,管他是走着到的还是开车到的。

这里写图片描述

然后来到Server端:

[root@iz2ze8w7169ei61c5c1il5z zhutong]# pwd
/root/zhutong
[root@iz2ze8w7169ei61c5c1il5z zhutong]# cat id_rsa.pub >> /root/.ssh/authorized_keys 
[root@iz2ze8w7169ei61c5c1il5z zhutong]# more /root/.ssh/authorized_keys 
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAxs5W2gIw5paR+3cXmI8NsttblqeuFv8m3HLoZPMXQ7/ZTePJvCijdzUxn+bxXtthEVcMgWi7ET86Z5fPJ75KprJ/vIzOqOWmTTUgbNrqV2ytdPY8wkswwAmZlSiJdGQJgsJuGTtdxU6HN/k4PWVykD88NT+jklNIViUvPzwEG4hYsMVDVONFDgD0pKgLyfr4uvOd7NZiwVhyjPF42ATASj8efPCuwadGewp2nB5U+Q
7eJOuvpvHfcTw55XM5rhpyNydE7QyXrOw8GOJFXCc1lFV/rJ/m9UO9fsIER9DOgy3uQsGL4M6E+NaM1kTfO/QwAkrGqmm5V0fgNhvPQeCu/w== root@ceshi
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAoGWIooFA6hvMkwwQzX/0llavuSekJwViuayBkr2RrLi+Po3Ml8WQQdfYT8Hj3Cq1VU596f/d8ovkL2zucasZpeEUonjdu80jQdiH/nJHyf/aIBNUgyKvi48hGgXA3AiceCKkhKeppqiirGzgqssByRIZUuBCYol8dJRghSjHOS12OwiQiEQbgdYAYIemDirlCjji40d6rfYMQ4TVRWC2xvdJ9qZsm7EAi1yFdYNQiP
BpWjQUNDOmZ+49xPsLzn9S5RY2h7TEkdl5p+qcwn8VhAWMZfut+jZL6+LyISuZZTq53agDWa/d6p/A5cpGO5hN0pt8+GQi4O00iGDCcCmz0Q== admin@ADMIN-PC

W端下连接测试:
注意,注意,注意
测试之前将/etc/ssh/sshd_config中对应参数设置为:PasswordAuthentication no
然后重启服务。

这里写图片描述

W端通过xshell连接发现原来输入密码的地方直接置灰不让点了,只能输入public key ,然后我们选择对应的秘钥:

这里写图片描述

OK

这样做比较有效的防止黑客暴力破解服务器(但肯定比上次安全系数高多了0.0)

猜你喜欢

转载自blog.csdn.net/zt_fucker/article/details/73496464