Sunday, April 28, 2024
 Popular · Latest · Hot · Upcoming
12
rated 0 times [  12] [ 0]  / answers: 1 / hits: 32919  / 3 Years ago, tue, august 24, 2021, 6:48:34

The question is simple.

What would be the script I would have to use to shut down a computer in my network thru ssh.



Normaly i would go to command line and:



ssh desktop

delik@desktop's password:

delik@desktop:~$ sudo shutdown -P 0


To power on I created a file and wrote:



wakeonlan xx:xx:xx:xx:xx:xx


And gave it the executable bit



That way to power on it requires only a double click. Would i be capable of doing the same to shutdown?


More From » ssh

 Answers
1

For the following I am assuming that the user you are going to use in remote-host is the same you use in local-host.


In order to do what you want, you have to first authorize your local-host to connect to you remote-host with no password. To do that you have to (as described here):



  1. Install ssh:


    sudo apt-get install ssh


  2. Create public and private keys using ssh-key-gen on local-host by entering this command in your localhost:


    ssh-keygen

    You should save the generated key in:


    /home/yourusername/.ssh/id_rsa

    Press enter twice to leave the passphrase empty.


    Your identification has been saved in /home/yourusername/.ssh/id_rsa.
    Your public key has been saved in /home/yourusername/.ssh/id_rsa.pub.
    The key fingerprint is:
    XX:XX:XX:xX:XX:xX:XX:XX:XX:XX:XX:XX:XX:XX yourusername@local-host


  3. Copy the public key to the remote-host using ssh-copy-id:


    yourusername@local-host$ ssh-copy-id -i ~/.ssh/id_rsa.pub remote-host
    yourusername@remote-host's password:

    Now try logging into the machine, with:

    ssh remote-host

    and check in .ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting.


    Note: ssh-copy-id appends the keys to the remote-host’s /home/yourusername/.ssh/authorized_key.



  4. Login to remote-host without entering the password:


    ssh remote-host
    yourusername@remote-host:~$

    Access to remote-host with no password. Success!




Now you have to be able to execute sudo shutdown -P 0 with no password. You can do that by modifying /etc/sudoers on remote-host with visudo. That way, user yourusername can execute the shutdown command with no password asked.



  1. Login to the remote-host:


    ssh remote.host


  2. Run:


    sudo visudo

    By running visudo, you edit /etc/sudoers in a safe manner.



  3. Add this line to the file:


    yourusername ALL = NOPASSWD: /sbin/shutdown


  4. After doing that, get back to your local-host, create a new empty file and paste this line, modifying the remote-host's name:


    ssh remote.host sudo shutdown -P 0


  5. Save and close the file, right-click on it to go to its PropertiesPermissions, and tick Execute this file as a program.




Script done!


[#35415] Thursday, August 26, 2021, 3 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
fittecanap

Total Points: 322
Total Questions: 100
Total Answers: 105

Location: Israel
Member since Tue, Nov 17, 2020
4 Years ago
;