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 24/02/2020, à 11:49

DRbuntu91

Comment "scripter" RSYNC avec SSH vers un Raspberry sans mot de passe?

Bonjour
Je suis en train de mettre en place un NAS a base d’un Raspberry (avec Raspbian) sur lequel j’ai installé OpenMediaVault.
Le but est de faire une sauvegarde de mon ordi portable avec Ub16.04 vers ce Raspberry en exécutant RSYNC sur mon ordi Ubuntu (je suppose que j’aurai pu faire le contraire mais pour le moment je cherche a faire marcher mon premier choix)
Sur le Raspberry j’ai les comptes suivants:
- le compte PI (avec son mot de passe) – c’est le seul compte au sens Linux
- le compte ADMIN (avec son mot de passe) pour accéder a l’interface OMV
- un compte TOTO que j’ai crée dans OMV (mais qui n’est pas vraiment un compte au sens Linux – en tout cas il n’a pas de HOME….)

Et sur mon ordi Ubuntu je n’ai qu’un seul compte TITI.

Dans un terminal j’arrive a faire un RSYNC de Ubuntu vers le Raspberry en utilisant aussi bien le compte PI que TOTO, mais je dois a chaque fois saisir le mot de passe,  or j’ai une dizaine de commandes RSYNC a passer….

Exemple d’une commande:

rsync -e ssh -avz --delete-after ~/Arduino/ pi@192.168.1.102:/sharedfolders/MesFichiers/Arduino/

Je souhaite "scripter" tout ça dans un fichier bash et bien-sur sans avoir a saisir un mot de passe. Et c’est la que je bute.

Quelqu’un pourrait me conseiller comment faire ?

PS : Sur mon ordi Ubunti j’arrive bien a générer un clef avec ssh-keygen mais je ne peux pas la copier sur le Raspberry avec ssh-copy-id par ce que il n’a pas de compte TITI !

Merci d’avance pour votre aide


Portable CLEVO W55SU1, Intel i5-4200M, RAM=8Go, DD=500Go mSATA, BIOS 4.6.5 AMI, Ubuntu 16.04 LTS a jour
Puis pour bidouiller un vieux portable Dell Precision M4600 avec W10 + DEBIAN-Buster
Utilisateur Ubuntu depuis Janvier 2017

Hors ligne

#2 Le 24/02/2020, à 13:31

Screen

Re : Comment "scripter" RSYNC avec SSH vers un Raspberry sans mot de passe?

Bonjour, il faut configurer ssh avec une authentification par clé

la commande sera alors:

rsync -avz -e "ssh -i /chemin-de-la-clé-privée"  --delete-after ~/Arduino/ pi@192.168.1.102:/sharedfolders/MesFichiers/Arduino/

Hors ligne

#3 Le 24/02/2020, à 13:36

michel_04

Re : Comment "scripter" RSYNC avec SSH vers un Raspberry sans mot de passe?

Bonjour.


DRbuntu91 a écrit :

PS : Sur mon ordi Ubunti j’arrive bien a générer un clef avec ssh-keygen mais je ne peux pas la copier sur le Raspberry avec ssh-copy-id par ce que il n’a pas de compte TITI !

Pas besoin d'avoir un compte TITI qui est l'user du PC client, c'est le compte PI qui demande la connexion SSH.

michel@Michel-T450~$ ssh pat....@adresse-pat.ddns.net
Ubuntu 16.04.6 LTS
Welcome to Ubuntu 16.04.6 LTS (GNU/Linux 4.4.0-173-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

18 paquets peuvent être mis à jour.
17 mises à jour de sécurité.

Last login: Mon Feb 24 13:20:39 2020 from 78.231.50.2
pat....@Pat....-ZBOX:~$

Voir le paragraphe Authentification par un système de clés publique/privée sur la page SSH de la documentation.


A+

Hors ligne

#4 Le 24/02/2020, à 14:17

DRbuntu91

Re : Comment "scripter" RSYNC avec SSH vers un Raspberry sans mot de passe?

@Screen:
D'abord merci pour ton retour. Voici ce que ça donne:

rsync -e "ssh -i ~/.ssh/id_rsa" -avz --delete-after ~/Bureau/ pi@192.168.1.102:/sharedfolders/MesFichiers/Bureau/
sign_and_send_pubkey: signing failed: agent refused operation
pi@192.168.1.102's password: 

J'ai fait également ceci:

ssh-copy-id pi@192.168.1.102
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
pi@192.168.1.102's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'pi@192.168.1.102'"
and check to make sure that only the key(s) you wanted were added.

xwop@CLEVO:~$ ssh pi@192.168.1.102
sign_and_send_pubkey: signing failed: agent refused operation
pi@192.168.1.102's password: 

Donc systématiquement je dois saisir le mot de passe du PI
Au début je pensais que le pb. venait de mon Raspberry, mais j'ai l'impression que le pb. si situe plutot coté mon Ubuntu (le client donc)
D’ailleurs j'ai revérifié la config. du service SSH dans OMV (mon Raspberry n'a pas de bureau) et l'option "Activer l'authentification par clef publique" est bien coché.

Juste au cas ou voici le contenu de mon répertoire .ssh dans le HOME de mon Ubuntu

~/.ssh$ ls -l
total 16
-rw------- 1 TITI TITI    0 avril 19  2019 authorized_keys
-rw------- 1 TITI TITI 1679 févr. 24 13:19 id_rsa
-rw-r--r-- 1 TITI TITI  392 févr. 24 13:19 id_rsa.pub
-rw------- 1 TITI TITI 1838 févr. 20 23:27 known_hosts
-rw------- 1 TITI TITI 2677 févr. 20 23:23 known_hosts.old

@michel_04: merci. je vais lire ça calmement cet après-midi.


Portable CLEVO W55SU1, Intel i5-4200M, RAM=8Go, DD=500Go mSATA, BIOS 4.6.5 AMI, Ubuntu 16.04 LTS a jour
Puis pour bidouiller un vieux portable Dell Precision M4600 avec W10 + DEBIAN-Buster
Utilisateur Ubuntu depuis Janvier 2017

Hors ligne

#5 Le 24/02/2020, à 14:36

michel_04

Re : Comment "scripter" RSYNC avec SSH vers un Raspberry sans mot de passe?

Est-ce qu'il y a une erreur avec un :

ping 192.168.1.102

Si erreur :

ssh-add

Puis retenter un ping.

Dernière modification par michel_04 (Le 24/02/2020, à 14:38)

Hors ligne

#6 Le 24/02/2020, à 14:56

DRbuntu91

Re : Comment "scripter" RSYNC avec SSH vers un Raspberry sans mot de passe?

Bonjour michel_04 et merci pour ton retour

Je n'ai pas d'erreur de ping du coup je n'ai pas fait ssh-add

Je suis en train de lire la doc. que tu m'a donné et en particulier le paragraphe 3.2.3.8

Sur mon Raspberry dans le fichier /etc/ssh/sshd_config j'ai bien  StrictModes yes

mais je n'ose pas exécuter ces 3 commandes (surtout la première que je ne connais pas)

chmod go-w ~/
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

Un conseil?


Portable CLEVO W55SU1, Intel i5-4200M, RAM=8Go, DD=500Go mSATA, BIOS 4.6.5 AMI, Ubuntu 16.04 LTS a jour
Puis pour bidouiller un vieux portable Dell Precision M4600 avec W10 + DEBIAN-Buster
Utilisateur Ubuntu depuis Janvier 2017

Hors ligne

#7 Le 24/02/2020, à 15:05

michel_04

Re : Comment "scripter" RSYNC avec SSH vers un Raspberry sans mot de passe?

Ces commandes donnent les bons droits d'accès à tes fichiers.

man chmod

Dans la doc : Gérer les droits d'accès (propriétés et permissions) des fichiers et répertoires

Doc permissions a écrit :

chmod, pour changer les droits

L'outil chmod (change mode, changer les permissions) permet de modifier les permissions sur un fichier. Il peut s'employer de deux façons : soit en précisant les permissions de manière octale, à l'aide de chiffres1) ; soit en ajoutant ou en retirant des permissions à une ou plusieurs catégories d'utilisateurs à l'aide des symboles r w et x, que nous avons présentés plus haut. Nous préférerons présenter cette seconde façon ("ajout ou retrait de permissions à l'aide des symboles"), car elle est probablement plus intuitive pour les néophytes. Sachez seulement que les deux méthodes sont équivalentes, c'est-à-dire qu'elles affectent toutes deux les permissions de la même manière.
En gérant chaque droit séparément

De cette façon, on va choisir :

    À qui s'applique le changement
        u (user, utilisateur) représente la catégorie "propriétaire" ;
        g (group, groupe) représente la catégorie "groupe propriétaire" ;
        o (others, autres) représente la catégorie "reste du monde" ;
        a (all, tous) représente l'ensemble des trois catégories.

Dernière modification par michel_04 (Le 24/02/2020, à 15:06)

Hors ligne

#8 Le 24/02/2020, à 17:43

bruno

Re : Comment "scripter" RSYNC avec SSH vers un Raspberry sans mot de passe?

Bonjour,

Le retour complet de :

ssh -v pi@192.168.1.102

#9 Le 24/02/2020, à 20:44

DRbuntu91

Re : Comment "scripter" RSYNC avec SSH vers un Raspberry sans mot de passe?

Bonjour Bruno
Quand j’exécute ta commande, je me retrouve connecté dans le Raspberry sans avoir a saisir un mot de passe.
Et maintenant miracle, tout marche!
Plus besoin de saisir un mot de passe aussi bien pour RSYNC que pour Putty ou Remmina.
Tu as une explication?

Voici le log

$ ssh -v pi@192.168.1.102
OpenSSH_7.2p2 Ubuntu-4ubuntu2.8, OpenSSL 1.0.2g  1 Mar 2016
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 192.168.1.102 [192.168.1.102] port 22.
debug1: Connection established.
debug1: identity file /home/xwop/.ssh/id_rsa type 1
debug1: key_load_public: No such file or directory
debug1: identity file /home/xwop/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/xwop/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/xwop/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/xwop/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/xwop/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/xwop/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/xwop/.ssh/id_ed25519-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_7.2p2 Ubuntu-4ubuntu2.8
debug1: Remote protocol version 2.0, remote software version OpenSSH_7.9p1 Raspbian-10+deb10u2
debug1: match: OpenSSH_7.9p1 Raspbian-10+deb10u2 pat OpenSSH* compat 0x04000000
debug1: Authenticating to 192.168.1.102:22 as 'pi'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
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:sYwPWHYJPI08cEk8yPVATy3TAXiLNbwDrBXHjzV4lNw
debug1: Host '192.168.1.102' is known and matches the ECDSA host key.
debug1: Found key in /home/xwop/.ssh/known_hosts:11
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_EXT_INFO received
debug1: kex_input_ext_info: server-sig-algs=<ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521>
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/xwop/.ssh/id_rsa
debug1: Server accepts key: pkalg rsa-sha2-512 blen 279
debug1: Authentication succeeded (publickey).
Authenticated to 192.168.1.102 ([192.168.1.102]:22).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: pledge: network
debug1: client_input_global_request: rtype hostkeys-00@openssh.com want_reply 0
debug1: Remote: /home/pi/.ssh/authorized_keys:2: key options: agent-forwarding port-forwarding pty user-rc x11-forwarding
debug1: Remote: /home/pi/.ssh/authorized_keys:2: key options: agent-forwarding port-forwarding pty user-rc x11-forwarding
debug1: Sending environment.
debug1: Sending env LC_PAPER = fr_FR.UTF-8
debug1: Sending env LC_ADDRESS = fr_FR.UTF-8
debug1: Sending env LC_MONETARY = fr_FR.UTF-8
debug1: Sending env LC_NUMERIC = fr_FR.UTF-8
debug1: Sending env LC_TELEPHONE = fr_FR.UTF-8
debug1: Sending env LC_IDENTIFICATION = fr_FR.UTF-8
debug1: Sending env LANG = fr_FR.UTF-8
debug1: Sending env LC_MEASUREMENT = fr_FR.UTF-8
debug1: Sending env LC_TIME = fr_FR.UTF-8
debug1: Sending env LC_NAME = fr_FR.UTF-8
Linux RPiB3 4.19.97-v7+ #1294 SMP Thu Jan 30 13:15:58 GMT 2020 armv7l

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Mon Feb 24 20:33:36 2020 from 192.168.1.9

Portable CLEVO W55SU1, Intel i5-4200M, RAM=8Go, DD=500Go mSATA, BIOS 4.6.5 AMI, Ubuntu 16.04 LTS a jour
Puis pour bidouiller un vieux portable Dell Precision M4600 avec W10 + DEBIAN-Buster
Utilisateur Ubuntu depuis Janvier 2017

Hors ligne