h2. [How to remotely shut down the NAS [FaJoSSHD]|http://www.fajo.de/main/en/faq/thecus/How_to_remotely_shut_down_the_NAS_573] This HowTo describes how to remotely shutdown or reboot the NAS without logging in to the WebUI. The method described can be used to automatically shut down or reboot the NAS from other applications using SSH. The HowTo assumes the module [FaJoSSHD|http://www.fajo.de/main/en/thecus/modules/fajosshd] is installed and enabled on the target NAS. All scripts described in this HowTo are attached to this FAQ. *{_}Update{_}{*}_: Since_ [FaJoSSHD|http://www.fajo.de/main/en/thecus/modules/fajosshd] _1.04.00 similar wrapper scripts are part of the module._ h2. Step 1 - Create a directory to hold the scripts A dedicated directory should be created to hold the shutdown and rebbot wrapper scripts. Do not place the scripts in a modules path or the scripts will be removed when the module gets removed or updated. The directory should be placed on the master RAID - in this HowTo we create a directory named "/raid/data/_tools_"mkdir -m 0755 /raid/data/_tools_Do not use a network share - the wrapper scripts will be executed with root privileges.\\ h2. Step 2 - Create the wrapper scripts Now we create or upload the two wrapper scripts into the directory created in step (1). The scripts will make sure the shutdown or reboot will work on allmost all NAS models. The first script will be the shutdown script to power off the NAS. Create the script file as "/raid/data/_tools_/shutdown.sh":#!/bin/sh cd / cmd="/bin/false" if [ -x /img/bin/sys_halt ] ; then # 64bit cmd="/img/bin/sys_halt" elif [ -x /img/bin/model/sysdown.sh ] ; then # 32bit v2.1+ cmd="/img/bin/model/sysdown.sh poweroff" elif [ -x /img/bin/sysdown.sh ] ; then # 32bit < v2.1 cmd="/img/bin/sysdown.sh poweroff" else echo "No shutdown script found!" cmd="/bin/false" fi trap "" 1 2 3 13 15 exec ${cmd} </dev/null >/dev/null 2>&1 & The second script will reboot the NAS when called. Create the script file as ""/raid/data/_tools_/reboot.sh":#!/bin/sh cd / cmd="/bin/false" if [ -x /img/bin/sys_reboot ] ; then # 64bit cmd="/img/bin/sys_reboot" elif [ -x /img/bin/model/sysdown.sh ] ; then # 32bit v2.1+ cmd="/img/bin/model/sysdown.sh reboot" elif [ -x /img/bin/sysdown.sh ] ; then # 32bit < v2.1 cmd="/img/bin/sysdown.sh reboot" else echo "No reboot script found!" >&2 cmd="/bin/false" fi trap "" 1 2 3 13 15 exec ${cmd} </dev/null >/dev/null 2>&1 &Next make sure the scripts can be executed:chmod 0755 /raid/data/_tools_/shutdown.sh chmod 0755 /raid/data/_tools_/reboot.sh\\ h2. Step 3 - Create Keys for authentication To not require passwords to be entered we use public key authentication. We use dedicated keys for each action, so we need two of them. To create the key pairs use the tools provided with or available for your client - I will describe how to create them using OpenSSH tools on Linux:ssh-keygen -t rsa -b 2048 -N "" -C "NAS Shutdown Key" -f ~/.ssh/nas-shutdown ssh-keygen -t rsa -b 2048 -N "" -C "NAS Reboot Key" -f ~/.ssh/nas-reboot This will create two key pairs that do not have a password set. In the next steps we need the content (single line) of the public key files (ending in .pub) - the lines look likessh-rsa AAAA...... NAS Shutdown Key ssh-rsa AAAA...... NAS Reboot Key\\ h2. Step 4 - Update authorized_key on the NAS We now need to allow clients that authenticate with the keys just created to run the wrapper scripts. Therefore we update or create the file/raid/data/module/FaJoSSHD/system/etc/ssh/users/root/authorized_keysAdd two lines to the file - one for each script/key pair. Each line contains the public key prepended with the appropriate "command" option. The lines will then look like:command="/raid/data/_tools_/shutdown.sh" ssh-rsa AAAA...... NAS Shutdown Key command="/raid/data/_tools_/reboot.sh" ssh-rsa AAAA...... NAS Reboot Key\\ h2. Shutting down or rebooting the NAS The examples below again utilize OpenSSH on Linux. To shut down the NAS just run (replace NASIP with the IP address of the NAS)ssh -l root -i ~/.ssh/nas-shutdown NASIP To reboot the NAS just run (replace NASIP with the IP address of the NAS)ssh -l root -i ~/.ssh/nas-reboot NASIPYou may want or need to pass additional options (such as: \-o IdentitiesOnly=yes) to ssh or update the ssh client config. |