很多免费提供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了。