web-dev-qa-db-fra.com

Comment pourrais-je arrêter un hôte distant, sur mon réseau via ssh, avec un hôte local?

La question est simple.
Quel serait le script que je devrais utiliser pour éteindre un ordinateur de mon réseau via ssh.

Normalement, j'irais en ligne de commande et:

ssh desktop

delik@desktop's password: 

delik@desktop:~$ Sudo shutdown -P 0

Pour mettre sous tension, j'ai créé un fichier et écrit:

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

Et lui a donné le bit exécutable

Cette façon de l'allumer ne nécessite qu'un double clic. Serais-je capable de faire la même chose à l'arrêt?

7
DeLiK

En supposant que l'utilisateur que vous allez utiliser dans remote.Host est identique à celui que vous utilisez en local.Host
Pour ce faire, vous devez d'abord autoriser votre hôte local.Host à se connecter à votre distant.Hôte sans mot de passe.
Pour faire cela, vous devez: (comme décrit ici)

Étape 1: Installez ssh

Sudo apt-get install ssh

Étape 2: Créer des clés publiques et privées à l'aide de ssh-key-gen sur local-Host

Sur votre hôte local, entrez cette commande:

ssh-keygen

Vous devez enregistrer la clé générée dans:

/home/yourusername/.ssh/id_rsa

Appuyez deux fois sur Entrée pour laisser la phrase secrète vide.

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

Étape 3: Copiez la clé publique sur l'hôte distant à l'aide de 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.

Remarque: ssh-copy-id ajoute les clés au /home/yourusername/.ssh/authorized_key de l’hôte distant.

Étape 4: Connectez-vous à l'hôte distant sans entrer le mot de passe

ssh remote-Host
[email protected]:~$

Accès à l'hôte distant sans mot de passe. Succès!

Maintenant, vous devez être capable de exécuter l'arrêt Sudo -P 0 sans mot de passe .

Modifiez/etc/sudoers sur remote.Host avec visudo

De cette façon, l'utilisateur " votrenomutilisateur " peut exécuter la commande d'arrêt sans mot de passe demandé.
Connectez-vous à l'hôte distant.

ssh remote.Host

Courir:

Sudo visudo

En exécutant visudo, cela conduit à éditer/etc/sudoers.
Ajout de la ligne ci-dessous à ce fichier.

yourusername ALL = NOPASSWD: /sbin/shutdown

C'est fait, retournez chez votre hôte.Host
Créez un nouveau fichier vide et collez cette ligne en modifiant le nom de l'hôte distant.

ssh remote.Host Sudo shutdown -P 0

Sauvegardez-le et fermez-le, allez dans sa Propriétés dans les diapositives, puis cliquez sur le bouton , exécutez ce fichier en tant que programme

Le script est fait!

8
DeLiK