Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 03/09/2020, à 13:36

noirdesir

script ssh

Bonjour tout le monde,

J'ai repris un petit script me permettant d'installer une mise à jour de pip sur des machines que l'on possède (chaque machine à ssh d'installer, en 16.04).

[quote]#!/bin/bash
SCRIPT="cd Desktop; pwd;  echo -e 'PASSWORD' | sudo -H pip install --upgrade pip"
HOSTS=("192.168.1.118" "192.168.1.119" "192.168.1.121")
USERNAMES=("utilisateur" "utilisateur" "utilisateur")
PASSWORDS=("motdepasse" "motdepasse" "motdepasse")
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[/quote]

J'ai deux soucis, la première fois je dois me connecter manuellement à mon ordinateur distant et afin de répondre au message suivant :

he authenticity of host '192.168.1.121 (192.168.1.121)' can't be established.
ECDSA key fingerprint is SHA256:DwxzScGueM8vuyKlnFFTNEC7Q776n7mtr/DwNor2qPE.
Are you sure you want to continue connecting (yes/no)?

suite du message 

Warning: Permanently added '192.168.1.121' (ECDSA) to the list of known hosts.
ssh_dispatch_run_fatal: Connection to 192.168.1.121 port 22: Broken pipe

Je dois répondre yes... Que dois je mettre dans mon script pour résoudre ce soucis (après je n'ai plus besoin de remettre yes)...

Une fois cette étape franchie, je me déconnecte, et j'ai l'erreur suivante :

192.168.1.119
Permission denied, please try again.
192.168.1.121
Permission denied, please try again.

Merci pour votre aide.
Cordialement Fabien

Dernière modification par noirdesir (Le 03/09/2020, à 13:37)

Hors ligne

#2 Le 03/09/2020, à 14:35

Vobul

Re : script ssh

Salut,

Déjà mettre des mots de passe dans un script est une bien mauvaise idée. Ensuite, utiliser quelque chose comme Ansible/Chef/Salt serait préférable pour ce genre d'actions (perso je préfère ansible).

Pour ce qui est d'accepter la clé du host, c'est quelque chose qui ne se fait qu'une seule fois, donc il suffit de ssh au moins une fois sur chaque host pour valider le fingerprint et zou.

Tu peux essayer d'utiliser "yes | " au début de la ligne, mais bon je recommande pas vraiment de faire ça.

Ensuite je vois que tu utilises sshpass, n'as-tu pas configuré l'authentification par clé ? C'est bien mieux. C'est même la première chose à faire pour se connecter à un serveur en ssh, ajouter sa clé publique dans .ssh/authorized_keys (man ssh-copy-id), puis désactiver l'auth par mot de passe.

Pour les erreurs de permissions denied, utilise ssh -vv pour avoir plus d'infos. Selon la config sshd du serveur ça peut être des choses différentes.


Vobul
Utilisez le retour utilisable de commandes !!!
J'aime la langue française, mais je parle franglais, deal with it.
RTFM

Hors ligne

#3 Le 03/09/2020, à 14:36

bruno

Re : script ssh

Modération : sujet déplacé dans la section idoine.

--

EDIT : à propos de pip, lire : https://metrodore.fr/i-have-been-powned.html

EDIT2 : tu as perdu un dollar.

Dernière modification par bruno (Le 03/09/2020, à 15:13)

Hors ligne

#4 Le 03/09/2020, à 14:57

Watael

Re : script ssh

je le redis, encore :
- les variables utilisateurs (contrairement aux variables d'environnement) doivent ne pas être tout en majuscules (et sur un forum, ça équivaut à crier).
- les accolades dans les développements de variables quand il n'y a rien d'accolé sont inutiles

autrement, l'utilisation de l'index du premier tableau, et la substitution du motif "PASSWORD"*, c'est bien.

--
* là encore, c'est pas la peine de crier. wink


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#5 Le 03/09/2020, à 15:33

noirdesir

Re : script ssh

Watael a écrit :

je le redis, encore :
- les variables utilisateurs (contrairement aux variables d'environnement) doivent ne pas être tout en majuscules (et sur un forum, ça équivaut à crier).
- les accolades dans les développements de variables quand il n'y a rien d'accolé sont inutiles

autrement, l'utilisation de l'index du premier tableau, et la substitution du motif "PASSWORD"*, c'est bien.

--
* là encore, c'est pas la peine de crier. wink

Oui je sais pour le forum, que l'on n'utilise pas les majuscules... après dans des scripts... Bref comme je disais j'ai repris un script que j'ai trouvé pour l'utiliser selon mes besoins.
Par contre, je ne vois pas trop ou je vais mettre mes passwords, mettre le scripts dans une clef, me parait toujours moins problèmatique que des les stocker sur un disque dur en local.... Après je n'ai pas trop d'avis sur la question.
Je n'ai pas fait d'authentication par clef, j'ai vu des informations ... Mais je ne l'ai pas mise en pratique, malheureusement les explications que j'ai vu était assez abscons....

Pour ssh -vv

192.168.1.118
OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n  7 Dec 2017
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: resolving "192.168.1.118" port 22
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to 192.168.1.118 [192.168.1.118] port 22.
debug1: Connection established.
debug1: key_load_public: No such file or directory
debug1: identity file /home/aip/.ssh/id_rsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/aip/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/aip/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/aip/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/aip/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/aip/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/aip/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/aip/.ssh/id_ed25519-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.3
debug1: Remote protocol version 2.0, remote software version OpenSSH_7.2p2 Ubuntu-4ubuntu2.10
debug1: match: OpenSSH_7.2p2 Ubuntu-4ubuntu2.10 pat OpenSSH* compat 0x04000000
debug2: fd 3 setting O_NONBLOCK
debug1: Authenticating to 192.168.1.118:22 as '{USERNAMES[i]}'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug2: local client KEXINIT proposal
debug2: KEX algorithms: curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha256,diffie-hellman-group14-sha1,ext-info-c
debug2: host key algorithms: ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521-cert-v01@openssh.com,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-ed25519-cert-v01@openssh.com,ssh-rsa-cert-v01@openssh.com,ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa
debug2: ciphers ctos: chacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com
debug2: ciphers stoc: chacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com
debug2: MACs ctos: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: MACs stoc: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: compression ctos: none,zlib@openssh.com,zlib
debug2: compression stoc: none,zlib@openssh.com,zlib
debug2: languages ctos: 
debug2: languages stoc: 
debug2: first_kex_follows 0 
debug2: reserved 0 
debug2: peer server KEXINIT proposal
debug2: KEX algorithms: curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1
debug2: host key algorithms: ssh-rsa,rsa-sha2-512,rsa-sha2-256,ecdsa-sha2-nistp256,ssh-ed25519
debug2: ciphers ctos: chacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com
debug2: ciphers stoc: chacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com
debug2: MACs ctos: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: MACs stoc: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: compression ctos: none,zlib@openssh.com
debug2: compression stoc: none,zlib@openssh.com
debug2: languages ctos: 
debug2: languages stoc: 
debug2: first_kex_follows 0 
debug2: reserved 0 
debug1: kex: algorithm: curve25519-sha256@libssh.org
debug1: kex: host key algorithm: ecdsa-sha2-nistp256
debug1: kex: server->client cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: none
debug1: kex: client->server cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: none
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ecdsa-sha2-nistp256 SHA256:g1YwRTHnp1WB/68zA2no9p7MAKcKrhCDCEklmPmySj0
debug1: Host '192.168.1.118' is known and matches the ECDSA host key.
debug1: Found key in /home/aip/.ssh/known_hosts:3
debug2: set_newkeys: mode 1
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug2: set_newkeys: mode 0
debug1: rekey after 134217728 blocks
debug2: key: /home/aip/.ssh/id_rsa ((nil))
debug2: key: /home/aip/.ssh/id_dsa ((nil))
debug2: key: /home/aip/.ssh/id_ecdsa ((nil))
debug2: key: /home/aip/.ssh/id_ed25519 ((nil))
debug1: SSH2_MSG_EXT_INFO received
debug1: kex_input_ext_info: server-sig-algs=<rsa-sha2-256,rsa-sha2-512>
debug2: service_accept: ssh-userauth
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Trying private key: /home/aip/.ssh/id_rsa
debug1: Trying private key: /home/aip/.ssh/id_dsa
debug1: Trying private key: /home/aip/.ssh/id_ecdsa
debug1: Trying private key: /home/aip/.ssh/id_ed25519
debug2: we did not send a packet, disable method
debug1: Next authentication method: password
debug2: we sent a password packet, wait for reply
debug1: Authentications that can continue: publickey,password
Permission denied, please try again.

Dernière modification par noirdesir (Le 03/09/2020, à 15:49)

Hors ligne

#6 Le 03/09/2020, à 15:53

noirdesir

Re : script ssh

bruno a écrit :

Modération : sujet déplacé dans la section idoine.

--

EDIT : à propos de pip, lire : https://metrodore.fr/i-have-been-powned.html

EDIT2 : tu as perdu un dollar.

Je n'ai pas tout compris.... Vous vous adressiez à moi ?

Hors ligne

#7 Le 03/09/2020, à 16:07

Vobul

Re : script ssh

debug1: Authenticating to 192.168.1.118:22 as '{USERNAMES[i]}'

Vobul
Utilisez le retour utilisable de commandes !!!
J'aime la langue française, mais je parle franglais, deal with it.
RTFM

Hors ligne

#8 Le 03/09/2020, à 16:18

bruno

Re : script ssh

Qu'est ce que tu n'a pas compris ?
Que j'ai déplacé ton message parce qu'il n'était pas dans la bonne section ?
Que l'utilisation de pip est potentiellement risquée ?
Qu'il mangue un $ devant une variable dans ton script ?

Hors ligne

#9 Le 03/09/2020, à 16:22

noirdesir

Re : script ssh

bruno a écrit :

Qu'est ce que tu n'a pas compris ?
Que j'ai déplacé ton message parce qu'il n'était pas dans la bonne section ?
Que l'utilisation de pip est potentiellement risquée ?
Qu'il mangue un $ devant une variable dans ton script ?

Un peu les 3... Pour pip, je fais ce que me dise les développeurs de l'application...
Pour le dollar, je vais regarder (c'est totalement possible), pour le message, j'avoue que je ne me souviens plus où je l'ai posté, mais je pensais l'avoir sans doute mis au bonne endroit (merci pour les réponses).  ^^ ce n'était pas assez verbeux wink

Hors ligne

#10 Le 03/09/2020, à 16:25

Watael

Re : script ssh

après dans des scripts... Bref[...]

tu as un doute ?
c'est une convention : les variables d'environnement (HOME, PWD, USER...) sont tout en majuscules pour être distinguées des autres.
a contrario, pour ne pas les écraser/confondre(!), les variables utilisateurs, logiquement, doivent ne pas l'être.

J'ai repris un petit script me permettant d'installer[...]

j'avais compris que tu avais repris un code de ton cru; il n'était pas précisé que le code n'est pas de toi.
mais ça ne change rien à mes remarques, pour ton édification.
en répétant ces "erreurs"/maladresses, on prolonge leur diffusion. c'est pour ça que j'interviens dès que je les vois.


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#11 Le 03/09/2020, à 16:27

noirdesir

Re : script ssh

Vobul a écrit :
debug1: Authenticating to 192.168.1.118:22 as '{USERNAMES[i]}'

J'ai l'erreur pour chaque uitilisateur....

Watael a écrit :

après dans des scripts... Bref[...]

tu as un doute ?
c'est une convention : les variables d'environnement (HOME, PWD, USER...) sont tout en majuscules pour être distinguées des autres.
a contrario, pour ne pas les écraser/confondre(!), les variables utilisateurs, logiquement, doivent ne pas l'être.

J'ai repris un petit script me permettant d'installer[...]

j'avais compris que tu avais repris un code de ton cru; il n'était pas précisé que le code n'est pas de toi.
mais ça ne change rien à mes remarques, pour ton édification.
en répétant ces "erreurs"/maladresses, on prolonge leur diffusion. c'est pour ça que j'interviens dès que je les vois.

Je n'ai aucun doute, la dessus.
Je n'en savais rien du tout. Désolé, si j'ai pu donner l'impression du contraire.

Dernière modification par noirdesir (Le 03/09/2020, à 16:29)

Hors ligne

#12 Le 03/09/2020, à 16:36

Watael

Re : script ssh

pas de problème.

dans le script

ssh -l "{USERNAMES[i]}"

il manque un (signe) dollar : "${usernames[$i]}"


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#13 Le 08/09/2020, à 08:56

noirdesir

Re : script ssh

Watael a écrit :

pas de problème.

dans le script

ssh -l "{USERNAMES[i]}"

il manque un (signe) dollar : "${usernames[$i]}"

Je te remercie, je vais tester cela. Je n'ai pas pu répondre avant smile.

Hors ligne

#14 Le 16/09/2020, à 13:50

noirdesir

Re : script ssh

Bonjour
J'ai corrigé le soucis de synthaxe, pour autant sshpass ne semble pas fonctionner.
En mode verbose il me donne l'erreur suivante :
sshpass: Failed to run command: No such file or directory

Hors ligne

#15 Le 16/09/2020, à 14:43

Vobul

Re : script ssh

Remplace "sshpass" par le retour de "which sshpass".


Vobul
Utilisez le retour utilisable de commandes !!!
J'aime la langue française, mais je parle franglais, deal with it.
RTFM

Hors ligne

#16 Le 30/09/2020, à 13:48

noirdesir

Re : script ssh

ok merci smile
Je vais voir ça merci pour le renseignement.

Hors ligne

#17 Le 01/10/2020, à 15:57

noirdesir

Re : script ssh

Quelques choses ne doit pas fonctionner mais je n'ai pas d'erreur à proprement parlé, j'ai juste des pwds mais rien de plus , je ne pense pas qu'il me renvoie le pwd de la cible

192.168.1.194
/usr/bin/ssh
192.168.1.195
/usr/bin/ssh
192.168.1.196
/usr/bin/ssh

Dernière modification par noirdesir (Le 02/10/2020, à 09:58)

Hors ligne

#18 Le 19/11/2020, à 09:28

noirdesir

Re : script ssh

Bonjour du coup pour le mot de passe, j'ai utilisé SSHPASS et un option pour le yes

export SSHPASS="motdepasse"
set = SSHPASS
sshpass -e ssh -t -t -o "StrictHostKeyChecking no" aip@192.168.1.$i "echo 'motdepasse'| sudo -S apt upgrade -y && sudo -S apt autoremove -y"

Hors ligne

#19 Le 19/11/2020, à 09:32

Watael

Re : script ssh

Salut,

je ne comprends pas cette commande :

set = SSHPASS

je sais ce qu'elle fait (et toi ?), mais je ne lui vois pas d'utilité.

Dernière modification par Watael (Le 19/11/2020, à 09:33)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne