SSH: Edit, Backup, and Restart service simply
Below is a quick Bash script I wrote to allow me to quickly edit the sshd_config file, while also backing up the old copy and restarting the SSH Daemon for me when the edit was done. I keep this saved in “/usr/bin/sshdmod”. Nothing fancy, but figured some one else might like it:
# Made by Logan Rogers-Follis of www.tntnetworx.net
# Last Updated On 2009-11-20
# Known Bugs: NONE
# Script: This script will create a backup of the sshd_config file before editing, and then backup the newest copy , and then restart the sshd service once you are done editing.
# Folder location of sshd_config file.
sshdloc="/etc/ssh" # Change only if this is not where your sshd_config file is located.
#Check/Clear .sshd_config.swp in case some one else is editing it currently.
if [ -e $sshdloc/.sshd_config.swp ]
then
echo -n "$sshdloc/.sshd_config.swp file found. Delete to continue? (yes/NO) "
read swpcheck
if [ "$swpcheck" == "yes" -o "$swpcheck" == "y" ]
then
echo -n "Deleting .sshd_config.swp: "
rm -f $sshdloc/.sshd_config.swp
echo "OK"
else
echo "Exiting"
exit 1
fi
fi
#Pick which editor to use. Default is Vi.
echo -n "Edit sshd_config file with? (nano/VI) "
read editcheck
# Get the current time: YearMonthDayHourMinutesSeconds
timestart=`date +%Y%m%d%H%M%S`
if [ "$editcheck" == "nano" -o "$editcheck" == "n" ]
then
cp $sshdloc/sshd_config $sshdloc/sshd_config.prev.$timestart
nano $sshdloc/sshd_config
elif [ "$editcheck" == "vi" -o "$editcheck" == "v" ]
then
cp $sshdloc/sshd_config $sshdloc/sshd_config.prev.$timestart
vi $sshdloc/sshd_config
else
cp $sshdloc/sshd_config $sshdloc/sshd_config.prev.$timestart
vi $sshdloc/sshd_config
fi
# Get the current time: YearMonthDayHourMinutesSeconds
timedone=`date +%Y%m%d%H%M%S`
#Restarts SSH Daemon.
echo -n "Backing up new copy of sshd_config to $sshdloc/sshd_config.latest.$timedone: "
rm -f $sshdloc/sshd_config.latest.*
cp $sshdloc/sshd_config $sshdloc/sshd_config.latest.$timedone
echo "DONE"
service sshd restart