解决云服务器被攻击尝试ssh登陆的问题
解决云服务器被攻击尝试登陆的问题
日狗!当前我这台云主机,每次连上都有如下提示(各种被扫描和攻击…)
1 | Last failed login: Tue Dec 12 07:55:36 CST 2019 from 219.146.144.254 on ssh:notty |
研究后发现两种办法可以解决这个问题。以下内容为在Centos7下操作。s
方法A: 设置SSH密钥登陆
ssh登陆原理简单说明:
公钥相当于锁,私钥相当于钥匙。
生成公钥和私钥,并把公钥上传到服务器。以后在客户端登陆时,就可以使用私钥来进行验证。不再需要用户名和密码登陆 ,大大提高了服务器安全性。
1.生成ssh密钥
首先确保服务器已经装了ssh服务,现在linux服务器都自带吧。
1 | ssh-keygen -t rsa |
这里使用rsa算法,-t用于指定加密算法。
然后Enter passphrase (empty for no passphrase):选择默认直接回车无密码
查看生成的密钥:
1 | [root@centos ~]# ll /root/.ssh/ |
id_rsa是私钥,id_rsa.pub是公钥
2.把公钥存到默认ssh密钥位置。 /当前用户/.ssh/authorized_keys
1 | [root@centos ~]# cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys #将公钥追加到keys文件中,注意是追加.因为keys文件中可能记录了多个公钥. |
3.打开ssh服务器的密钥登陆功能
修改SSH的配置文件/etc/ssh/sshd_config :
1 | [root@centos ~]# vi /etc/ssh/sshd_config |
去掉上面3行前面的#,保存后重启SSH服务。
1 | [root@centos ~]# systemctl restart sshd.service |
4.使用windows下的ssh客户端配置密钥连接服务器
下载公钥和私钥到客户机
必须两个文件都下,且要放到一个目录下。(有些ssh工具只要私钥就行)
我这使用windows scp(ftp软件)将密钥文件下载到本机。
(所有工具都大同小异,我用的是免费的xshell)
新建一个会话,并选择public-key的方式连接。
浏览选择刚下载的私钥文件点击确定,然后就登陆成功!
5.关闭密码登录
修改SSH的配置文件/etc/ssh/sshd_config :
1 | [root@centos ~]# vi /etc/ssh/sshd_config |
保存后重启SSH服务。
1 | [root@centos ~]# systemctl restart sshd.service |
方法B:修改ssh的默认端口改到一个不为他人知道的端口
1.添加一个不为他人知道的端口
1 | [root@centos ~]# firewall-cmd --zone=public --add-port=XXXXX/tcp --permanent #防火墙XXXXX端口打开(移除add改成remove) |
重启防火墙
1 | [root@centos ~]# systemctl restart firewalld |
2.修改SSH的配置文件/etc/ssh/sshd_config :
1 | [root@centos ~]# vi /etc/ssh/sshd_config |
保存后重启SSH服务。
1 | [root@centos ~]# systemctl restart sshd.service |
大功告成!
再也不用看到登陆尝试失败的提示了。
完结!
添加SSH公钥到GitHub账户
如果有已连接主机
1.旧主机保留在user/.shh目录下的id_rsa id_rsa.pub两个文件拷贝到新主机
2.新主机删除user/.shh目录下的knowhosts文件对应的github远程主机公钥
3.新机重新部署
全新连接
要添加SSH公钥到GitHub账户,请按照以下步骤操作:
1.检查是否已有SSH公钥。在命令行中输入以下命令,查看是否已有SSH公钥存在:
1 | cat ~/.ssh/id_rsa.pub |
如果提示”No such file or directory”,则需要生成一个新的SSH公钥。
2.生成新的SSH公钥。如果没有现有的SSH公钥,可以使用下面的命令生成一个新的:
1 | ssh-keygen -t rsa -b 4096 -C "your_email@example.com" |
用你的GitHub注册邮箱替换”your_email@example.com“。
3.将SSH公钥添加到GitHub账户。首先复制SSH公钥到剪贴板:
1 | cat ~/.ssh/id_rsa.pub | clip |
或者在macOS中:
1 | pbcopy < ~/.ssh/id_rsa.pub |
然后登录GitHub网站,点击右上角的用户头像,选择”Settings”,在侧边栏选择”SSH and GPG keys”,点击”New SSH key”,在弹出的界面粘贴你的SSH公钥,并填写标题。
4.测试SSH连接。输入以下命令来测试SSH连接是否成功:
1 | ssh -T git@github.com |
如果看到类似于 “Hi username! You’ve successfully authenticated, but GitHub does not provide shell access.” 的消息,说明SSH设置成功。
以上步骤完成后,你就可以通过SSH进行安全的Git操作了。