[Clé SSH] Retenir la passphrase automatiquement ? (Résolu)

Ce qui ne concerne ni le forum ni des problèmes
Répondre
Avatar de l’utilisateur
Xorg
Maître du Kyudo
Messages : 1933
Inscription : dim. 22 janv. 2012, 19:25
Localisation : Entre le clavier et la chaise.

[Clé SSH] Retenir la passphrase automatiquement ? (Résolu)

Message par Xorg »

Salut,

Il m'arrive souvent de devoir retaper ma passphrase pour utiliser une clé SSH. Quand j'ai ssh-agent qui tourne en arrière plan, un ssh-add clé suffit pour retenir le mot de passe.
Avec un peu de bidouille au niveau du shell, j'arrive à lancer ce ssh-add quand j'en ai besoin (par exemple, lors d'un git clone). Mais par exemple, quand le git clone est effectué par un script, ça n’effectue pas le ssh-add automatiquement...

Enfin bref. Existe-t-il quelque chose qui permet de retenir la passphrase automatiquement quand on utilise une clé ?
Sur le wiki, j'ai trouvé keychain, et quand je mets eval $(keychain --eval --quiet clé dans mon ~/.zlogin, ça me demande ma passphrase dès que je me log sur ma machine, mais ce n'est pas ce que je veux (je veux que ça la demande uniquement quand j'ai besoin de l'utiliser).
J'ai essayé avec --noask, mais là ça me demande jamais rien et ça ne retient pas la passphrase...

Voilà, si vous connaissez quelque chose qui sait faire ça, je suis preneur. :mrgreen:

Merci d'avance.
Dernière modification par Xorg le lun. 28 mars 2016, 20:26, modifié 1 fois.
Arch Linux x86_64 - Sway
AMD Ryzen 5 3600X - 32 Go de DDR4 - SSD NVMe 1 To + SSD SATA 250 Go - Sapphire NITRO+ Radeon RX 580
Image AUR___Image Wiki___Image GitHub
Avatar de l’utilisateur
HS-157
Hankyu
Messages : 46
Inscription : ven. 22 mai 2015, 06:52

Re: [Clé SSH] Retenir la passphrase automatiquement ?

Message par HS-157 »

Salut,
Pour moi j'utilise ssh-agent pour gérer mes clefs.

Je mets ce script dans mon .xinitrc pour qu'il soit lancer tant que mon ordi est allumé ou du moins, le temps que mon serveur graphique est lancé.

Code : Tout sélectionner

ssh-agent -s > /tmp/ssh.keys
. /tmp/ssh.keys
rm  /tmp/ssh.keys
Car si tu fais ça dans ton terminal, il va pas rester lancé.

Tu as juste à faire un ssh-add pour rajouter ta clef dans le trousseau.

Normalement avec zsh, tu peux faire en sorte qu'il te rajoute ta clef dans le trousseau pour la premier connexion à ton serveur en demandant ta passphrase.

À voir aussi pour que ssh-agent oublie ta clef au bout de X temps, car c'est mieux niveau sécurité.

Si ça règle pas ton problème, regarde si le programme lance git avec ton utilisateur,
Car ssh-agent doit sûrement tourner que pour ton utilisateur.
Tu as essayé lancer par toi même une commande git pour voir si ça marche ?
Avatar de l’utilisateur
Xorg
Maître du Kyudo
Messages : 1933
Inscription : dim. 22 janv. 2012, 19:25
Localisation : Entre le clavier et la chaise.

Re: [Clé SSH] Retenir la passphrase automatiquement ?

Message par Xorg »

En fait j'arrive à utiliser ssh-agent et ssh-add, ce n'est pas ça le soucis.
Tu dis "ajoute ta clef dans le trousseau pour la premier connexion à ton serveur en demandant ta passphrase". Donc ça veut dire que tu ajoutes la clé même si tu n'en auras pas besoin. Moi je cherche quelque chose qui l'ajoute automatiquement au trousseau.

Petit exemple concret : j'ai ssh-agent qui tourne, je modifie un projet Git et je veux faire un push -> quelque chose ajoute la clé au trousseau puis fait le push. :)
Arch Linux x86_64 - Sway
AMD Ryzen 5 3600X - 32 Go de DDR4 - SSD NVMe 1 To + SSD SATA 250 Go - Sapphire NITRO+ Radeon RX 580
Image AUR___Image Wiki___Image GitHub
Avatar de l’utilisateur
HS-157
Hankyu
Messages : 46
Inscription : ven. 22 mai 2015, 06:52

Re: [Clé SSH] Retenir la passphrase automatiquement ?

Message par HS-157 »

Xorg a écrit :En fait j'arrive à utiliser ssh-agent et ssh-add, ce n'est pas ça le soucis.
J'ai cru comprendre, mais quand je me suis apperçu, j'avais déjà écris un paté... :roll:
Xorg a écrit :Tu dis "ajoute ta clef dans le trousseau pour la premier connexion à ton serveur en demandant ta passphrase". Donc ça veut dire que tu ajoutes la clé même si tu n'en auras pas besoin.
Nan, je rajoute ma clef dans le trousseau quand je me connecte sur mon serveur (pas graphique) pour la première fois, après, les coups suivant, j'ai plus besoin de taper ma clef.
Xorg a écrit :Moi je cherche quelque chose qui l'ajoute automatiquement au trousseau.
Petit exemple concret : j'ai ssh-agent qui tourne, je modifie un projet Git et je veux faire un push -> quelque chose ajoute la clé au trousseau puis fait le push. :)
Ouais, rajouter automatiquement ta clef qui a une passphare sans taper ta passphare dans le trousseau, c'est comme avoir une clef sans passphare, niveau sécurité, c'est nul.
Avatar de l’utilisateur
Xorg
Maître du Kyudo
Messages : 1933
Inscription : dim. 22 janv. 2012, 19:25
Localisation : Entre le clavier et la chaise.

Re: [Clé SSH] Retenir la passphrase automatiquement ?

Message par Xorg »

Décidément... :mrgreen:

Toi tu ajoutes ta clé au trousseau manuellement quand tu veux te connecter à ton serveur. Moi ce que je cherche à faire, c'est que quand je me connecte au serveur, il me propose d'ajouter la clé au trousseau (je me demande si ce n'est pas Gnome Keyring qui peut faire ça).

C'est vrai que le mot "automatique" n'est pas le meilleur... Je voulais dire "inviter à rentrer la passphrase au moment approprié". Les clés sans passphrase n'ont pas ce soucis.
Je suis d'accord pour taper ma passphrase, mais pas à chaque fois que je démarre mon PC. Juste la rentrer une seule fois quand j'en ai besoin, sans faire moi-même un ssh-add. :)
Arch Linux x86_64 - Sway
AMD Ryzen 5 3600X - 32 Go de DDR4 - SSD NVMe 1 To + SSD SATA 250 Go - Sapphire NITRO+ Radeon RX 580
Image AUR___Image Wiki___Image GitHub
Avatar de l’utilisateur
HS-157
Hankyu
Messages : 46
Inscription : ven. 22 mai 2015, 06:52

Re: [Clé SSH] Retenir la passphrase automatiquement ?

Message par HS-157 »

Xorg a écrit :Toi tu ajoutes ta clé au trousseau manuellement quand tu veux te connecter à ton serveur. Moi ce que je cherche à faire, c'est que quand je me connecte au serveur, il me propose d'ajouter la clé au trousseau
Oui, pour l'instant je fais un ssh-add <ma_ clef> pour rajouter ma clef dans le trousseau et après un ssh <ma_machine> et je me co automatiquement dessus.
Xorg a écrit :Je voulais dire "inviter à rentrer la passphrase au moment approprié". Les clés sans passphrase n'ont pas ce soucis.
Je suis d'accord pour taper ma passphrase, mais pas à chaque fois que je démarre mon PC. Juste la rentrer une seule fois quand j'en ai besoin, sans faire moi-même un ssh-add. :)
Ok, et j'ai cru comprendre que tu utilisais zsh.
J'ai dis dans mon premier message que zsh pouvait t'inviter à rentrer ta passphrase pour rajouter ta clef dans le trousseau quand tu te co en ssh.
Normalement, zsh peut lancer une commande avant une autre, et c'est hook pre-exec.
Tu peux dire : "si la commande tapée contient ssh et que l'agent ssh n'a pas d'identité en stock, alors je demande la passpĥrase"

Je te laisse chercher.
Avatar de l’utilisateur
Xorg
Maître du Kyudo
Messages : 1933
Inscription : dim. 22 janv. 2012, 19:25
Localisation : Entre le clavier et la chaise.

Re: [Clé SSH] Retenir la passphrase automatiquement ?

Message par Xorg »

C'est plus au moins ce que j'avais déjà en fait. J'avais un alias sur la commande git et la commande ssh, et ça vérifiait si la clé était déjà dans le trousseau. Le cas échéant, ça l'ajoutait puis ça exécutait la commande que j'avais tapé.
Mais bon, comme je disais dans mon premier message, il suffit que ça soit n'importe quel script qui appelle une de ces deux commandes, et là ça n'ajoute pas ma clé dans le trousseau (c'est normal d'un côté que les scripts n'utilisent pas les alias).

J'ai installé Gnome Keyring pour tester, et ça a le comportement que je recherchais : ça ouvre la boite de dialogue uniquement quand il faut déverrouiller une clé, puis ça l'ajoute au trousseau et je suis tranquille.
Problème : je cherche l'équivalent en CLI ! Je ne suis pas très fan des fenêtres graphiques qui s'ouvrent pour me demander des choses quand je travaille en ligne de commande. :mrgreen:
Arch Linux x86_64 - Sway
AMD Ryzen 5 3600X - 32 Go de DDR4 - SSD NVMe 1 To + SSD SATA 250 Go - Sapphire NITRO+ Radeon RX 580
Image AUR___Image Wiki___Image GitHub
Avatar de l’utilisateur
HS-157
Hankyu
Messages : 46
Inscription : ven. 22 mai 2015, 06:52

Re: [Clé SSH] Retenir la passphrase automatiquement ?

Message par HS-157 »

Alors là, je peux pas t'aidé.

regarde quand même pour les ancres de zsh, pour voir si les scripts prend en compte.
Moviuro
Elfe
Messages : 765
Inscription : dim. 17 juin 2012, 22:49

Re: [Clé SSH] Retenir la passphrase automatiquement ?

Message par Moviuro »

ssh-agent est incapable de faire ça (dixit les gens de #openssh @ freenode).
Deux solutions :
  • Écrire un beau wrapper pour ssh(1) qui appelle ssh-add(1) au besoin
  • Utiliser un autre agent ssh, comme gnupg-agent
Je te laisse gratter et me recontacter si tu veux écrire une jolie fonction SHELL pour wrapper ssh-add et ssh-agent.
psycho : Latitude E6430 ; BTRFS over LUKS, UEFI & secureboot
schizo : Acer 8942G ; KDE 4, BTRFS over LUKS ; W7 (prend la poussière)
toxo : i5-6600K, bspwm, VM W10 en PCI-passthrough
deadman : Lenovo Thinkcenter, OpenBSD 6.0-stable
popho.be : Kimsufi KS-3, FreeBSD 11.0
Loi de Murphy : Le jour où tu as besoin d'une backup, tu te dis que tu aurais dû en mettre en place
Venez sur IRC en plus du forum !
Avatar de l’utilisateur
Xorg
Maître du Kyudo
Messages : 1933
Inscription : dim. 22 janv. 2012, 19:25
Localisation : Entre le clavier et la chaise.

Re: [Clé SSH] Retenir la passphrase automatiquement ?

Message par Xorg »

HS-157 a écrit :regarde quand même pour les ancres de zsh, pour voir si les scripts prend en compte.
D'accord, merci pour l'aide. C'est vrai que je n'exploite pas tout le potentiel de Zsh. :roll:
Moviuro a écrit :ssh-agent est incapable de faire ça (dixit les gens de #openssh @ freenode).
Deux solutions :
  • Écrire un beau wrapper pour ssh(1) qui appelle ssh-add(1) au besoin
  • Utiliser un autre agent ssh, comme gnupg-agent
Je te laisse gratter et me recontacter si tu veux écrire une jolie fonction SHELL pour wrapper ssh-add et ssh-agent.
ssh-agent est incapable de le faire, on est d'accord. Mais plusieurs logiciels l'utilisent (Keychain et Gnome Keyring j'ai l'impression).
Ton histoire de wrapper m'intéresse. Comment est-ce que je me débrouille pour que les les programmes qui exécutent ssh(1) utilisent mon wrapper ? :D
Écrire le wrapper en lui-même, ce n'est pas un soucis, j'ai déjà ça sous la main.
Arch Linux x86_64 - Sway
AMD Ryzen 5 3600X - 32 Go de DDR4 - SSD NVMe 1 To + SSD SATA 250 Go - Sapphire NITRO+ Radeon RX 580
Image AUR___Image Wiki___Image GitHub
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17188
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [Clé SSH] Retenir la passphrase automatiquement ?

Message par benjarobin »

Créer un dossier dans /usr/local, y placer tes wrapper, puis modifier le path pour que le chemin de tes wrapper soit au début
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Avatar de l’utilisateur
Xorg
Maître du Kyudo
Messages : 1933
Inscription : dim. 22 janv. 2012, 19:25
Localisation : Entre le clavier et la chaise.

Re: [Clé SSH] Retenir la passphrase automatiquement ?

Message par Xorg »

Effectivement, j'ai testé de faire un script /usr/local/bin/ssh et ça a l'air de fonctionner. Dans le PATH par défaut, /usr/local/bin est avant /usr/bin. :D

Bien, je n'ai plus qu'à écrire mes wrappers, et ça sera tout bon. Je mets le sujet en résolu, merci à tout le monde. :wink:
Arch Linux x86_64 - Sway
AMD Ryzen 5 3600X - 32 Go de DDR4 - SSD NVMe 1 To + SSD SATA 250 Go - Sapphire NITRO+ Radeon RX 580
Image AUR___Image Wiki___Image GitHub
Moviuro
Elfe
Messages : 765
Inscription : dim. 17 juin 2012, 22:49

Re: [Clé SSH] Retenir la passphrase automatiquement ? (Résolu)

Message par Moviuro »

Tu pourras partager tes scripts une fois terminés ? :D :copain:
psycho : Latitude E6430 ; BTRFS over LUKS, UEFI & secureboot
schizo : Acer 8942G ; KDE 4, BTRFS over LUKS ; W7 (prend la poussière)
toxo : i5-6600K, bspwm, VM W10 en PCI-passthrough
deadman : Lenovo Thinkcenter, OpenBSD 6.0-stable
popho.be : Kimsufi KS-3, FreeBSD 11.0
Loi de Murphy : Le jour où tu as besoin d'une backup, tu te dis que tu aurais dû en mettre en place
Venez sur IRC en plus du forum !
Avatar de l’utilisateur
Xorg
Maître du Kyudo
Messages : 1933
Inscription : dim. 22 janv. 2012, 19:25
Localisation : Entre le clavier et la chaise.

Re: [Clé SSH] Retenir la passphrase automatiquement ? (Résolu)

Message par Xorg »

Moviuro a écrit :Tu pourras partager tes scripts une fois terminés ? :D :copain:
Ok, si tu veux. J'ai créé un Gist : https://gist.github.com/X0rg/1642951337f55f57678f.
Je l'ai tout simplement placé dans /usr/local/bin. Comme a dit Benjarobin, il faut juste s'assurer que /usr/local/bin soit avant /usr/bin dans le PATH (mais c'est le cas du PATH par défaut d'ArchLinux).

Ce script est basé sur la configuration contenue dans le fichier ~/.ssh/config. Pour le bon fonctionnement du script, si ce fichier contient la configuration pour plusieurs machines, il faut au moins une ligne vide entre chaque machine (comme l'exemple suivant).

Code : Tout sélectionner

# Fichier ~/.ssh/config
Host aur.archlinux.org
    IdentityFile ~/.ssh/id_rsa-aur
    User aur
    Port 22

Host machine.quelquechose
    IdentityFile ~/.ssh/id_rsa1
    User utilisateur1
    Port 22

Host machine.quelquechose
    IdentityFile ~/.ssh/id_rsa2
    User utilisateur2
    Port 22
Toutefois, ce script reste basique, il ne prend pas en charge le cas d'une machine avec plusieurs utilisateurs configurés. Dans cet exemple, la connexion avec utilisateur1 ou utilisateur2 à machine.quelquechose ne va pas faire le résultat attendu.
Mais bon, vu que je ne suis pas concerné par ce cas de figure, c'est pour ça que je laisse ça comme ça. :mrgreen:

À propos du unset DISPLAY, c'est voulu, c'est parce que Git appel ssh-askpass, et vu que je ne l'ai pas ça ne fonctionnait pas (je n’utilise pas ssh-askpass). Donc pour utiliser ssh-askpass, il faut retirer cette ligne.

Pour démarrer l'agent SSH, je vous invite à lire le wiki. :)
Arch Linux x86_64 - Sway
AMD Ryzen 5 3600X - 32 Go de DDR4 - SSD NVMe 1 To + SSD SATA 250 Go - Sapphire NITRO+ Radeon RX 580
Image AUR___Image Wiki___Image GitHub
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17188
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [Clé SSH] Retenir la passphrase automatiquement ? (Résolu)

Message par benjarobin »

Je pense qu'il y a moyen de faire mieux via awk : http://stackoverflow.com/questions/1277 ... nformation
Mais je suis si mauvais dans ce langage...
Ou utiliser un module Perl tout fait pour cela : http://search.cpan.org/dist/Net-SSH-Per ... /Config.pm
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Avatar de l’utilisateur
Xorg
Maître du Kyudo
Messages : 1933
Inscription : dim. 22 janv. 2012, 19:25
Localisation : Entre le clavier et la chaise.

Re: [Clé SSH] Retenir la passphrase automatiquement ? (Résolu)

Message par Xorg »

Je ne savais même pas que awk pouvait faire ça. :lol:
Mes compétences sont assez limitées en terme de script, mais avec un peu de bidouille je me débrouille. :)
Arch Linux x86_64 - Sway
AMD Ryzen 5 3600X - 32 Go de DDR4 - SSD NVMe 1 To + SSD SATA 250 Go - Sapphire NITRO+ Radeon RX 580
Image AUR___Image Wiki___Image GitHub
Répondre