Utilisation de SSH

https://stackoverflow.com/questions/13928116/write-a-shell-script-to-ssh-to-a-remote-machine-and-execute-commands

Généralement SSH est utilisé basiquement pour se connecter sur une machine à distance. Une fois connecté on y exécute directement dessus des commandes comme si on est en local. Si on doit effectuer des manipulations (mise à jour, installation d'un logiciel,…) identique sur plusieurs machines ça commence à etre fastidieux. Il faut donc envisager une automatisation de la tache.

usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface]
           [-b bind_address] [-c cipher_spec] [-D [bind_address:]port]
           [-E log_file] [-e escape_char] [-F configfile] [-I pkcs11]
           [-i identity_file] [-J [user@]host[:port]] [-L address]
           [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]
           [-Q query_option] [-R address] [-S ctl_path] [-W host:port]
           [-w local_tun[:remote_tun]] destination [command]

example:

on fournit une clé comme mot de passe

ssh -i ~/.ssh/ec2_instance.pem sshUser@ip_address 'touch a.txt; touch b.txt; sudo systemctl status apache2.service'

si les acces aux serveurs sont différents on peut utiliser SSHPASS (il faut peut etre l'installer sur la machine cliente)

#!/bin/bash
SCRIPT="cd Desktop; pwd;  echo -e 'PASSWORD' | sudo -S apt-get install vlc"
HOSTS=("192.168.1.121" "192.168.1.122" "192.168.1.123")
USERNAMES=("username1" "username2" "username3")
PASSWORDS=("password1" "password2" "password3")
for i in ${!HOSTS[*]} ; do
     echo ${HOSTS[i]}
     SCR=${SCRIPT/PASSWORD/${PASSWORDS[i]}}
     sshpass -p ${PASSWORDS[i]} ssh -l ${USERNAMES[i]} ${HOSTS[i]} "${SCR}"
done

Générer une clé

https://cloud.ibm.com/docs/hp-virtual-servers?topic=hp-virtual-servers-generate_ssh&locale=fr

rsa (par défat):

ssh-keygen -t rsa

ou

ssh-keygen

ecdsa-sha2-nistp256:

ssh-keygen -t ecdsa -b 256

Sous Windows on peut utiliser PuTTY Key Generator (voir le lien plus haut)

Dernière modification : le 2024/06/11