Ssh et clé distante

Bonjour, j’essaie de creer une cle distante pour du rsync et sauvegarder par mysqldump mes bases automatiquement.

Le principe si j’ai compris est d’avoir la meme cle sur le serveur que j’ai sur la machine locale.

Je génére la cle en local

ensuite je la copie sur le serveur au meme emplacement dans /root/.ssh

Tout semble fonctionner jusqu’a la (je ne sait pas ce que contient ma_cle_ssh, sans doute une cle gnéré automatiquement

Je cherche a me connecter avec la ligne ci-dessous mais rien y fait, on me demande toujours le mot de passe.

j’utilise donc a priori la meme cle sur mon local et une compararison se fait sur le serveur distant pour m’autoriser l’acces, si j’ai bien compris. qu’est-ce qui cloche donc ?

I lme faudra ensuite concatener les commandes pour la sauvegarde… c’est pour la suite… :smiley:

C’est pas de la programmation ça, je bascule dans Support.

Tu dois mettre le contenu de ta clé publique dans un fichier [mono]$USER/.ssh/authorized_keys[/mono]

Sur le serveur en root, j’envoie ma cle vers

ou plutot

ou encore ans le $USER

Sur le serveur, toujours. j’ai autoriser l’acces dans

j’ai donc décomenter la ligne ci-dessous

AuthorizedKeysFile %h/.ssh/authorized_keys
Je reboot pour voir !

!!! pas mieux !!!

Bonjour casimir,

Au lieu de copier ta clé via SCP, utilises la commande :

ssh-copy-id -i ~/.ssh/id_rsa.pub root@< ip du serveur distant >

qui est prévu à cet effet.

Je t’oriente vers un tutoriel en français que j’ai fait pour la procédure complète de déploiement d’une authentification SSH par clés : it-connect.fr/authentification-ssh-par-cles/

Cette commande :
scp -P2223 $HOME/.ssh/ma_cle_ssh.pub root@mon_serveur.fr:/root/.ssh/

Ne me semble pas bonne, tu doit copier le contenu de ta .pub dans le fichier /root/.ssh/authorized_keys et pas directement dans le répertoire. (C’est ce que fait la commande “ssh-copy-id” !

Dis moi si ça t’as aidé ! =)

Ta manip aurait dû marcher.

Il me semble que la config initiale de ssh dans Debian s’occupe déjà de tenir compte du fichier authorized_keys, tu n’aurais même pas eu besoin de décommenter la ligne.
L’effet est immédiat et ne nécessite ni redémarrage d’openssh, ni du système.

Donc il faut t’assurer que:

  • ta clé publique correspond bien à ton utilisateur courant
  • et que tu te connectes en précisant l’utilisateur distant ([mono]ssh <hôte> -l root[/mono])

La commande de Neaj pourra solutionner.

Salut,

[quote=“casimir”]Bonjour, j’essaie de creer une cle distante pour du rsync et sauvegarder par mysqldump mes bases automatiquement.

Le principe si j’ai compris est d’avoir la meme cle sur le serveur que j’ai sur la machine locale.

Je génére la cle en local

[mono][strike]ssh-keygen -t dsa -f $HOME/.ssh/ma_cle_ssh -P ‘’[/strike][/mono]

ensuite je la copie sur le serveur au meme emplacement dans /root/.ssh[/quote]

J’applique plus ou moins le même principe (clé ssh pour root) pour mes sauvegardes (Rsync !! :023 :007 ) Distantes que je rapatrie en local sur un support USB.

Pour ce faire, root s’autorise, temporairement en [mono]/etc/ssh/sshd_config[/mono].

Root ayant généré préalablement sa paire de clé en /root/.ssh/ (local)

Extrait des points concernés.

[quote][12:06:12] ~ # cat /etc/ssh/sshd_config

LoginGraceTime 10
[mono]#PermitRootLogin yes[/mono]
[mono]PermitRootLogin no[/mono]
[mono]#PermitRootLogin without-password[/mono]
#StrictModes yes

RSAAuthentication yes

Autoriser ou non la connexion par clé publique. Par défaut, cette option est sur « yes ».

[mono]PubkeyAuthentication yes[/mono]

AuthorizedKeysFile %h/.ssh/authorized_keys
[mono]AuthorizedKeysFile /root/.ssh/authorized_keys[/mono]

To enable empty passwords, change to yes (NOT RECOMMENDED)

[mono]PermitEmptyPasswords no[/mono]

Change to no to disable tunnelled clear text passwords

[mono]PasswordAuthentication no[/mono]

[mono]AllowUsers blabla …
AllowGroups sshusers wheel blabla …[/mono]

[12:06:15] ~ #[/quote]

[mono]# service ssh restart[/mono] -> la_bas

Nota : en gras, les lignes qui seront dé-commentées (temporairement) avant l’usage de rsync.

Les permissions Unix.

  • Distant

[12:28:58]~ # ll /root/.ssh total 36K -rw------- 1 root root 8,3K 2013-10-28 19:10 authorized_keys ... -rw------- 1 root root 509 2013-01-18 11:43 authorized_keys2 ... [12:29:07] ~ #

  • Local

[12:29:59] ~ # ll /root/.ssh total 52K -rw------- 1 root root 886 2013-10-31 20:19 known_hosts -rw------- 1 root root 2,8K 2013-10-28 19:08 id_rsa.pub -rw------- 1 root root 13K 2013-10-28 19:08 id_rsa -rw------- 1 root root 5,6K 2013-10-04 12:38 authorized_keys ... [12:30:01] ~ #

Ok vu, mais j’ai tester dans plusieurs sens puisque

no key found
donc j’ai fait

puis

dans cette derniére ligne j’ai id_rsa.pub et non rsa.pub !? ca ne devrait pas etre le meme nom ?

En tout cas ca marche maintenant, mais en root local, on peut le faire aussi en user ??
ou est-ce bien utile d’ailleurs.

Merci pour ce tuto et vos aides.

Content que ça marche ! =)

Il me semble que c’est la même chose, (id_rsa.pub et rsa.pub) l’important est le “.pub” qui indique qu’il s’agit de ta clé publique (qu’il faut mettre sur le serveur), ta clé privée restant sur ton PC.

Si tu as utilisé cette commande :
ssh-copy-id -i ~/.ssh/id_rsa.pub -p 2223 root@mon_serveur.fr"

avec l’utilisateur “toto”, alors celui ci pourra se connecter à root du serveur mon_serveur.fr sans mot de passe

Si tu veux que toto se connecte avec autre chose que root sur ce serveur il te suffit de remplacer “root@mon_serveur.fr” par “@mon_serveur.fr

[quote=“Neaj744”]Content que ça marche ! =)

Il me semble que c’est la même chose, (id_rsa.pub et rsa.pub) l’important est le “.pub” qui indique qu’il s’agit de ta clé publique (qu’il faut mettre sur le serveur), ta clé privée restant sur ton PC.

Si tu as utilisé cette commande :
ssh-copy-id -i ~/.ssh/id_rsa.pub -p 2223 root@mon_serveur.fr"

avec l’utilisateur “toto”, alors celui ci pourra se connecter à root du serveur mon_serveur.fr sans mot de passe

Si tu veux que toto se connecte avec autre chose que root sur ce serveur il te suffit de remplacer “root@mon_serveur.fr” par “@mon_serveur.fr”[/quote]
En principe, on ne se connecte pas en SSH en tant que ‘root’ mais en tant qu’“user”. Si on doit être ‘root’ sur le serveur, c’est une fois sur celui-là qu’on s’y place avec le MDP root du serveur, pa scelui du client.

Autre chose : pour la création de clefs ‘rsa’, il est inutile d’ajouter -b 1024 car c’est le minimum et c’est mis d’office à cette mesure. C’est quand on veut plus : 2048 ou +, qu’on précise.

Alors j’aurais souhaité etre en local user, et aussi en user sur le serveur donc pour ce dernier

mais j’ai un

/usr/bin/ssh-copy-id: ERROR: No identities found

En fait je veux utiliser de ma machine en local user si possible afin de récuperer mes bases mysql par une connection ssh, mais voila que je ne

mysqldump -uLOGIN -pPASS --port 2223 -h mon_serveur.fr BASE TABLE > ~/backup041118.sql mysqldump: Got error: 2013: Lost connection to MySQL server at 'reading initial communication packet', system error: 0 when trying to connect

Je vais ouvrir un autre fil, du coup fallait t’il que ssh ai une clé publique, j’en suis plus trés sur.

Si, il est préférable de pratiquer SSH avec un jeu de clefs.
Je n’ai pas dit que tu ferais tout en tant qu’“user”, je n’ai seulement parlé de la connexion à partir de ton client.
$ ssh machin@IP_serveur
ensuite, une fois dans serveur, machin se logue en tant que ‘root’, si besoin.

de chez moi donc je suis root j’aurai aimé etre user, c’est surtout ca mon probleme, si seulement s’en ai un.
Donc sa ca marche

c’est plutot ca que je veux, pour contourner mon mot de passe local user

En fait cette derniére commande, m’oblige a rentrer le mot de passe; c’est lequel ? celui que j’ai sur le serveur ou celui de ma machine qui est le meme, c’est balot !

Peut etre que vous vous demander pourquoi et bien je sait pas moi meme si c’est neccessaire.

ssh est un programme comme les autres, on évite de le lancer en tant que root.
Donc une partie de la question est résolue.

Maintenant, si tu veux accéder directement à ton compte root distant, c’est peut-être pas conseillé mais j’avoue être pratiquant. Il s’agit de machines où 90% de mon activité (qui n’est pas franchement sensible) c’est de l’administration, c’est tout juste si j’ai un compte utilisateur dessus.

Mais bon, sur certaines, j’ai aussi un compte utilisateur standard. Et j’y accède également par ce système de génération de clés, ou par mots de passe.

Je ne dis pas être un exemple à suivre :wink:

Pour accéder en root à un serveur distant sans en compromettre la sécurité, il y a toujours ce genre de possibilité :
ssh-autoriser-les-connections-root-en-toute-securite-si-t37495.html

En résumé :

  • un serveur SSH principal qui n’accepte pas les connexions root
  • un serveur secondaire, démarré à la demande, qui accepte les connexions root mais uniquement en provenance d’une certaine IP

C’est certainement ce que cherche notre ami, bien que je continue de dire que ce sont de mauvaises habitudes que de vouloir se connecter directement en tant que ‘root’ :unamused:
On se dit que c’est sans danger car on est seul et que c’est un serveur non sensible et, un jour, on modifie quelque chose qui change la donne et … Plouf ! comme dirait Pascal :wink:

Le truc c’est qu’il y a quand même toute une catégorie d’administration qui ne peut se faire qu’en root. C’est justement pour ces cas là que c’est intéressant de pouvoir se connecter directement en root à distance, car ça permet de scripter les opérations à effectuer et donc de réduire énormément les risques d’erreur humaine.
Le but (en tout cas en ce qui me concerne) n’est pas de pouvoir ouvrir un shell root interactif dans lequel je vais taper mes commandes manuellement, mais bien qu’un script sur ma machine puisse piloter un serveur à distance, en root si nécessaire.

Et à partir du moment où cet accès root est limité à mon IP, ça ne compromet pas la sécurité globale du serveur, ça me permet juste d’automatiser des tâches qui sinon :

  1. me feraient perdre du temps
  2. seraient rendues plus dangereuses du fait que je devrais les effectuer à la main

Pour les rares cas où j’ai besoin d’un shell root interactif, je vois pas l’intérêt de me connecter directement en root vu que passer d’abord par un utilisateur lambda ne me prend que 5 secondes de plus. :wink:

Je ne te contredirai pas sur l’utilité quand c’est quelqu’un de ton niveau de compétence qui emploie ce système.