文章系统图片系统下载系统个人求职企业招聘房产系统展会系统供求系统产品系统商城系统自定义系统后台一览
解决方案
建站知识
定时自动更改SSH密码并断开SSH连接
来源:网络作者:网络

很多免费提供SSH账号的都是自动定时更改SSH密码,比如每10分钟改一次。并且隔一段时间,还可以自动定时断开SSH。

研究了一下,发出来共享下。

使用root账号登录VPS, 建立一个文件夹,名字随便比如autossh

mkdir /usr/share/autossh

cd /usr/share/autossh

在这个文件夹下建立两个文件,文件名随便

/usr/share/autossh/r_autossh.sh

/usr/share/autossh/c_autossh.sh

r_autossh.sh文件内容

#!/bin/sh

userdel autossh

/usr/bin/php -r '$pwd=substr(md5("saltsecne99cc".time()),5,5);file_put_contents("/usr/share/autossh/pwd.txt",$pwd);file_put_contents("/usr/share/autossh/crypt.txt",crypt($pwd));'

PASSWORD=$(cat /usr/share/autossh/pwd.txt)

CPT=$(cat /usr/share/autossh/crypt.txt)

useradd -N -s /usr/sbin/nologin -p $CPT freessh

echo "User: freessh"

echo "Password: $PASSWORD"

echo ""

unlink /usr/share/autossh/crypt.txt

c_autossh.sh文件内容

#!/bin/sh

killall -u freessh

然后设置执行权限

chmod a+x /usr/share/autossh/*.sh

设置crontab,执行crontab -e

# m h dom mon dow command

*/10 * * * * /usr/share/autossh/r_autossh.sh #每十分钟,自动更改一次freessh账号密码

*/30 * * * * /usr/share/autossh/c_autossh.sh #每30分钟,自动断开freessh的链接

保存crontab,重启一下cron服务/etc/init.d/cron restart

现在己经实现自动定时更改SSH密码和自动定时断开SSH了。