前言
如果一台linux服务器开启了ssh服务,外界就可以通过试探端口来尝试连接该服务器;这样相当于把接口暴露在外面,是不太安全的。
有什么办法去解决这种问题了?
解决办法
1.修改ssh默认的22端口
不太行。通过扫描工具可以得知一台服务器开启了哪些端口,每个端口都是干什么的;
2.给服务器设置防火墙
设置特定的ip才能登录,或者设置端口转发从公网连接到私网中的服务器。
好处:的确解决了安全问题
坏处:设置太麻烦,速度慢,不灵活
3.私钥对验证
在客户机上创建密钥对,生成一个私钥和公钥文件,将公钥文件上传到服务器
注意:将公钥放在哪个用户的家目录公钥数据库中,就是以哪个用户登录服务器,且不需要密码。
具体操作
1.客户端生成密钥对
#客户端
ssh-keygen -t rsa
2.将公钥文件上传到服务器
scp id_rsa.pub root@192.***.***.***:/root/
3.在服务器中将公钥文件内容,添加到指定文件中
mkdir .ssh
cat id_rsa.pub >> .ssh/authorized_keys(文件名固定不能写错)
#不让其他用户可读
chmod 600 authorized_keys
4.修改服务端ssh配置文件
vi /etc/ssh/sshd_config
5.其他设置
windows充当客户端的时候
需要将私钥下载到客户端,修改用户验证方式 从 密码验证 → Public Key