Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
pssh [Le 17/03/2020, 19:37] – ajout de tags moths-artpssh [Le 14/12/2023, 15:51] (Version actuelle) – Avertissement sur les droits et usage ssh percherie
Ligne 1: Ligne 1:
-{{tag>ssh déploiement }}+{{tag>administration serveur ssh}}
 ---- ----
 ====== PSSH (parallel-ssh) ====== ====== PSSH (parallel-ssh) ======
Ligne 12: Ligne 12:
   * Compatible avec tous les Linux, Unix et freeBSD   * Compatible avec tous les Linux, Unix et freeBSD
  
-**Très utile puisque que sur un parc de PC, vous mettez à jour l'ensemble du parc depuis une seule machine.**+Ce logiciel est très utile sur un parc de PC, puisque vous mettez à jour l'ensemble du parc depuis une seule machine.
  
 ====== Configurer les postes clients ====== ====== Configurer les postes clients ======
 +<note tip>Il est possible d'écrire un script d'automatisation afin d'alléger cette tâche.</note>
 +<note important>Il est déconseillé de permettre la connexion ssh au compte root</note>
 +Sur chaque postes clients il s'agira de :
  
-Tâches à réaliser sur chaque client. Ecrire un script d'automatisation afin d'alléger cette tâche. +  * [[:tutoriel:comment_installer_un_paquet|Installez]] le **[[:ssh?#installation_du_serveur_ssh|serveur SSH]]**. Chaque client possédera donc son propre serveur ssh. 
-===== Installer le paquet openssh-server ===== +  * Configurer ces serveurs ssh pour qu'il accepte les connexions root et les autorisations par clefs et non mot de passe : 
-<code bash># aptitude install openssh-server</code> +     * avec les [[:sudo|droits d'administration]], [[:tutoriel:comment_modifier_un_fichier|modifiez le fichier]] **/etc/ssh/sshd_config** pour mettre à jour les lignes suivantes avec ces entrées : <file bash>
-Chaque client possédera donc son propre serveur ssh. +
- +
-===== configurer openssh-server ===== +
- +
-Configurer le serveur ssh pour qu'il accepte les connexions root et les autorisations par clefs et non mot de passe +
-<code bash># nano /etc/ssh/sshd_config</code> +
-Mettre à jour les lignes suivantes avec ces entrées +
-<code bash>+
 PermitRootLogin yes PermitRootLogin yes
-PubkeyAuthentication yes</code>+PubkeyAuthentication yes</file> 
 +  * Démarrer ou redémarrer le [[:services|service]] ssh. Il faut généralement les droits administrateur. 
 +    * Par exemple <code bash>sudo service ssh start</code> ou <code>sudo service ssh restart</code>
  
 +Les clients sont prêts à l'emploi
  
-Démarrer le service ssh ou le redémarrer 
-<code bash># service ssh start 
-# service ssh restart</code> 
- 
-Les clients sont prêts à l'emploi 
 ====== Configuration de la machine maître ====== ====== Configuration de la machine maître ======
 ===== Installer pssh ===== ===== Installer pssh =====
  
 +[[:tutoriel:comment_installer_un_paquet|Installez]] [[apt>pssh]]
    
-<code bash># aptitude install pssh</code> 
 ===== pssh / parallel-ssh ===== ===== pssh / parallel-ssh =====
- 
  
 Sous debian sid, l'utiliaire **pssh** s'appelle **parallel-ssh** (sous d'autres distributions c'est simplement **pssh**). Sous debian sid, l'utiliaire **pssh** s'appelle **parallel-ssh** (sous d'autres distributions c'est simplement **pssh**).
Ligne 51: Ligne 43:
  
 Construire sa clef , sauf si on en a déjà une (compte $USER, non en root) Construire sa clef , sauf si on en a déjà une (compte $USER, non en root)
-<code bash>$ ssh-keygen +<code bash>ssh-keygen</code>  
- +Vérifiez par <code bash>ls -l .ssh/ </code> 
-$ ls -l .ssh/+qui doit vous retourner 
 +<code>
 total 12 total 12
--rw------- 1 ragnarok cyrille 1876 juin  26  2019 id_rsa+-rw-------1 ragnarok cyrille 1876 juin  26  2019 id_rsa
 -rw-r--r-- 1 ragnarok cyrille  397 juin  26  2019 id_rsa.pub -rw-r--r-- 1 ragnarok cyrille  397 juin  26  2019 id_rsa.pub
 -rw-r--r-- 1 ragnarok cyrille 2220 mars  14 16:42 known_hosts</code> -rw-r--r-- 1 ragnarok cyrille 2220 mars  14 16:42 known_hosts</code>
Ligne 68: Ligne 61:
  
 Créer un fichier contenant les hosts Créer un fichier contenant les hosts
-<code bash>mkdir /etc/ssh/pssh_host +<code bash>mkdir /etc/ssh/pssh_host</code> 
-nano /etc/ssh/pssh_host/pssh+Modifiez le ensuite. Par exemple avec [[:nano]] si vous êtes sur une [[:console]]) 
 +<code>nano /etc/ssh/pssh_host/pssh</code> 
 +<file bash>
 ###Mettre les adresses IP des serveurs à administrer ici. ###Mettre les adresses IP des serveurs à administrer ici.
 root@192.168.0.11 root@192.168.0.11
Ligne 75: Ligne 70:
 root@192.168.0.23 root@192.168.0.23
 root@192.168.0.43 root@192.168.0.43
-...</code>+...</file>
  
 Si vous souhaitez utiliser les noms des machines plutôt que leurs adresses IP, il faudra modifier et adapter le fichier **/etc/hosts** Si vous souhaitez utiliser les noms des machines plutôt que leurs adresses IP, il faudra modifier et adapter le fichier **/etc/hosts**
  
 ===== Exporter la clef publique sur les clients ===== ===== Exporter la clef publique sur les clients =====
 +
 +Toujours en mode $USER
  
 <code bash>ssh-copy-id root@192.168.0.11 <code bash>ssh-copy-id root@192.168.0.11
Ligne 88: Ligne 85:
 Autant de fois que d'entrées dans votre fichier **/etc/ssh/pssh_host/pssh** Autant de fois que d'entrées dans votre fichier **/etc/ssh/pssh_host/pssh**
  
-<code bash>$ ssh-copy-id root@192.168.0.43+<code bash>ssh-copy-id root@192.168.0.43</code> 
 +<code>
 /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/ragnarok/.ssh/id_rsa.pub" /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/ragnarok/.ssh/id_rsa.pub"
 The authenticity of host '192.168.0.43 (192.168.0.43)' can't be established. The authenticity of host '192.168.0.43 (192.168.0.43)' can't be established.
Ligne 100: Ligne 98:
 Now try logging into the machine, with:   "ssh 'root@192.168.0.43'" Now try logging into the machine, with:   "ssh 'root@192.168.0.43'"
 and check to make sure that only the key(s) you wanted were added.</code> and check to make sure that only the key(s) you wanted were added.</code>
 +
 +FIXME root@192.168.0.43's password on ne doit pas saisir le mdp de la machine distante/cliente ?
  
  
Ligne 106: Ligne 106:
 ===== Initialiser pssh ===== ===== Initialiser pssh =====
  
 +Utilisez **ssh-agent** pour vous authentifier automatiquement (avec un nom de shell comme argument pour que les variables d'environnement de l'agent soient définies dans ce nouveau shell).
 +Ajoutez la clé avec **ssh-add** et tapez votre mot de passe __une seule fois__. FIXME pas forcément le mot de passe de la machine mais une mot de passe nouvellement choisi non ?
  
-Utilisez **ssh-agent** pour vous authentifier automatiquement (avec un nom de shell comme argument pour que les variables d'environnement de l'agent soient définies dans ce nouveau shell). Ajoutez la clé avec **ssh-add** et tapez votre mot de passe __une seule fois__. +<code bash>ssh-agent bash 
- +ssh-add
-<code bash>$ ssh-agent bash +
-$ ssh-add+
 Enter passphrase for /xxxx/.ssh/identity:</code>  Enter passphrase for /xxxx/.ssh/identity:</code> 
 +
  
 ===== Utiliser parallel-ssh ===== ===== Utiliser parallel-ssh =====
  
-==== Exemple, option -i ====+==== L'option -i ====
  
  
-<code bash>$ parallel-ssh -i  -h /etc/ssh/pssh_host/pssh_hosts uname -a+<code bash>parallel-ssh -i  -h /etc/ssh/pssh_host/pssh uname -a</code> 
 +Répondra 
 +<code>
 [1] 15:21:04 [SUCCESS] root@192.168.0.11 [1] 15:21:04 [SUCCESS] root@192.168.0.11
 FreeBSD asgard-freeBSD 12.0-RELEASE-p13 FreeBSD 12.0-RELEASE-p13 GENERIC  amd64 FreeBSD asgard-freeBSD 12.0-RELEASE-p13 FreeBSD 12.0-RELEASE-p13 GENERIC  amd64
Ligne 127: Ligne 130:
 On remarque ici **l'option -i** qui permet de visualiser ce que retourne le terminal ssh des postes clients On remarque ici **l'option -i** qui permet de visualiser ce que retourne le terminal ssh des postes clients
  
-==== Exemple, option -o ====+==== L'option -o ====
  
 Pour **rediriger la sortie ssh des clients vers un fichier**, on utilisera l'**option -o** Pour **rediriger la sortie ssh des clients vers un fichier**, on utilisera l'**option -o**
  
-<code bash>$ parallel-ssh -o /tmp/uname  -h /etc/ssh/pssh_host/pssh_hosts uname -a+<code bash>parallel-ssh -o /tmp/uname  -h /etc/ssh/pssh_host/pssh uname -a</code> 
 +Répondra 
 +<code>
 [1] 15:22:47 [SUCCESS] root@192.168.0.11 [1] 15:22:47 [SUCCESS] root@192.168.0.11
 [2] 15:22:48 [SUCCESS] root@192.168.0.43</code> [2] 15:22:48 [SUCCESS] root@192.168.0.43</code>
Ligne 137: Ligne 142:
 Et pour visualiser les sorties. Et pour visualiser les sorties.
  
-<code>$ cat /tmp/uname/root@192.168.0.11 /tmp/uname/root@192.168.0.43 +<code>cat /tmp/uname/root@192.168.0.11 /tmp/uname/root@192.168.0.43</code> 
 +Répondra 
 +<code>
 FreeBSD asgard-freeBSD 12.0-RELEASE-p13 FreeBSD 12.0-RELEASE-p13 GENERIC  amd64 FreeBSD asgard-freeBSD 12.0-RELEASE-p13 FreeBSD 12.0-RELEASE-p13 GENERIC  amd64
 Linux Tinuviel-debianStable 4.19.0-6-amd64 #1 SMP Debian 4.19.67-2+deb10u2 (2019-11-11) x86_64 GNU/Linux</code> Linux Tinuviel-debianStable 4.19.0-6-amd64 #1 SMP Debian 4.19.67-2+deb10u2 (2019-11-11) x86_64 GNU/Linux</code>
  
-==== Exemple, mise à jour à distance ====+==== Mise à jour à distance ====
  
-<code bash>$ parallel-ssh -i  -h /etc/ssh/pssh_host/pssh_hosts apt-get update +<code bash>parallel-ssh -i  -h /etc/ssh/pssh_host/pssh apt update 
-$ parallel-ssh -i  -h /etc/ssh/pssh_host/pssh_hosts apt-get upgrade</code>+parallel-ssh -i  -h /etc/ssh/pssh_host/pssh apt full-upgrade</code>
  
-===== Copier des fichiers vers les clients =====+:!: Attention ici il s'agit de la commande [[:apt]], à adapter selon votre gestionnaire de paquet :!:
  
 +==== Copier des fichiers vers les clients ====
  
 __Syntaxe__ __Syntaxe__
- +<code bash>parallel-scp -h /fichier_de_conf_pssh source destinatire</code>
-<code bash>$ parallel-scp -h /fichier_de_conf_pssh source destinatire</code>+
  
 __Exemple__ __Exemple__
 +<code bash>parallel-scp  -h /etc/ssh/pssh_host/pssh_hosts  $HOME/test.txt /tmp/</code>
  
-<code bash>$ parallel-scp  -h /etc/ssh/pssh_host/pssh_hosts  $HOME/test.txt /tmp/</code> +==== Tuer des processus sur les postes clients ====
- +
-Tuer des processus sur les postes clients+
  
 __Syntaxe__ __Syntaxe__
-<code bash>$ parallel-nuke -h /fichier_de_conf_pssh nom_du_processus</code>+<code bash>parallel-nuke -h /fichier_de_conf_pssh nom_du_processus</code>
  
 __Exemple__ __Exemple__
-<code bash>$ parallel-nuke  -h /etc/ssh/pssh_host/pssh_hosts  nginx</code>+<code bash>parallel-nuke  -h /etc/ssh/pssh_host/pssh_hosts  nginx</code>
  
- --- //[[cyrille@cbiot.fr|cyrille]] 2020/03/15 16:49//+---- 
 +//[[:utilisateurs:cyrille|cyrille]] AT cbiot DOT fr//