VpsPing教程:定时自动更改SSH密码并断开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了。
================================================
第二种:
现ssh定时更换密码,自己看吧。
1.需要expect,用于生产随机密码
#yum install expect
安装好后就可以使用mkpasswd来更改密码。
2.在home下面创建chpass.sh文件,内容如下,并且赋予可执行权限。
#!/bin/bash
pass=`mkpasswd -l 8 -d 8 -c 0 -C 0 -s 0 用户名`
cat /dev/null > /home/aaa/pass.txt
echo $pass >> /home/aaa/pass.txt
3.创建PHP文件。源码如下,请根据自己需要进行更改:
<?php
$passwd=file (“/home/aaa/pass.txt”);
foreach ($passwd as $pass);
echo $pass;
$file=”/home/aaa/pass.txt”;
$ctime=date(“Y-m-d H:i:s”,filectime($file));
$ntime= date(“Y-m-d H:i:s”);
echo $ctime;
echo “</br>”;
echo $ntime;
?>
文中的pass.txt文件为密码输出文件。
4.设置定时自动更改密码。你可以创建cron任务。通过crontab -e编辑
每半个小时更新:0,30 * * * * /home/chpass.sh
我是设置的每一个小时更新,所以直接把pass.sh文件复制到/etc/cron.hourly文件夹内就可以了。注意赋予可执行权限。本文来自: