更改Linux默认端口,并设置仅允许密钥登录

接上一篇文章,更改Linux默认端口,防止被恶意扫描

为了服务器安全。我们接着搞

上步骤:

一:首先运行Xshell5来生成密钥。如图:

一直如图操作:

密码自行决定是否设置,推荐默认。

到这里,务必选择保存公钥文件,待会要传到服务器上。

打开你保存的公钥文件,复制一份。

到了上代码的时候了:

#!/bin/bash
#更改ssh连接端口并开启密钥登陆工具
rm $0
echo "请输入新的SSH端口:"
read ss
echo "您输入的端口为$ss,确认请回车,否则请ctrl+c退出"
read ps
#请使用xshell生成公钥来替换下面的AAAA-LW8=这段密钥。
mkdir -p /root/.ssh && chmod 600 /root/.ssh && echo ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEA0Hg0M/p9GwdPGnQ+WopKygVxv9UOv243USfI02WuR+Jop1imyfmMdhzNoRM3r2CtObm56tHhcY7HrOGuA3eQiNQQYA6MgPEhwoB268MtFDhXttMXBHVCSRzOEIslo5TZTAIXnCZL8XXFUKDXqcuLwtA3XuupBdK36JeUoW9ALW8= > /root/.ssh/authorized_keys && chmod 700 /root/.ssh/authorized_keys
cp /etc/ssh/sshd_config /etc/ssh/sshd_config1
sed -i "s/#Port 22/Port $ss/g" /etc/ssh/sshd_config
sed -i "s/#AuthorizedKeysFile/AuthorizedKeysFile/g" /etc/ssh/sshd_config
sed -i "s/#PasswordAuthentication yes/PasswordAuthentication no/g" /etc/ssh/sshd_config
sed -i "s/PasswordAuthentication yes/PasswordAuthentication no/g" /etc/ssh/sshd_config
iptables -I INPUT -p tcp -m tcp --dport 23 -j ACCEPT
iptables-save
service sshd restart
echo "请不要急着退出终端,请重新连接一个终端确认是否成功,如果不成功,请执行以下操作"
echo "rm /etc/ssh/sshd_config;mv /etc/ssh/sshd_config1 /etc/ssh/sshd_config;service sshd restart"

代码里面记得需要修改的就是

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEA0Hg0M/p9GwdPGnQ+WopKygVxv9UOv243USfI02WuR+Jop1imyfmMdhzNoRM3r2CtObm56tHhcY7HrOGuA3eQiNQQYA6MgPEhwoB268MtFDhXttMXBHVCSRzOEIslo5TZTAIXnCZL8XXFUKDXqcuLwtA3XuupBdK36JeUoW9ALW8=

把这部分用刚刚复制的代码来替换,因为这是我的公钥,然后把上面的脚本保存为文件,在服务器上执行,再去测试,如果有问题,按照里面的提示恢复。

测试过大部分机器,如果不通过,请检查下防火墙是否开放端口,如果嫌麻烦,可以不更改端口,依然使用22端口。

有问题欢迎与我讨论,对于Putty的密钥来说,百度搜一下,key转pub就行。

» 本文链接:更改Linux默认端口,并设置仅允许密钥登录
» 转载请注明来源:刺客博客
» 如果文章失效或者安装失败,请留言进行反馈。