J'utilise Awesome Window Manager
Comment puis-je ajouter de manière permanente des clés privées avec mot de passe?
Inspiré par la réponse ici J'ai ajouté les clés privées dans ~/.ssh/config
Contenu de ~/.ssh/config:
IdentityFile 'private key full path'
Autorisations de ~/.ssh/config: 0700
Mais ça ne marche pas pour moi.
Si j'ajoute manuellement la clé à chaque session, cela fonctionne mais je cherche une manière plus élégante (pas en .bashrc)
EDIT:
Après avoir ajouté la clé SSH avec ssh-copy-if
à l'hôte distant, l'invite suivante s'affiche dans le terminal (terminal GNOME 3.0.1) lorsque je me connecte :
ssh -i .ssh/Password-Protected-Key user@Host
Enter passphrase for key '.ssh/Password-Protected-Key':
gnome-keyring-dameon
alors j'ai tué l'autre pid et lancé gnome-keyring-daemon --start | grep SOCK
(je l'ai aussi ajouté dans .profile) la sortie (grep):SSH_AUTH_SOCK=/tmp/keyring-2LXXXX/ssh
J'ai suivi exactement les mêmes étapes et de même, je n'ai pas de dialogue de l'interface graphique ssh-add.
EDIT 2 :
J'ai créé une nouvelle clé protégée par mot de passe à partir de la machine virtuelle Ubuntu 11.10 sur l'unité et je ne peux toujours pas obtenir d'invite de mot de passe.
EDIT 3 : Il semble que cela ne puisse pas fonctionner dans le gestionnaire de fenêtres Awesome :( et éventuellement d'autres ..
Si vous utilisez Unity ou un gestionnaire de session qui lance gnome-keyring-daemon, vous pouvez simplement utiliser Seahorse (mots de passe et clés) pour établir une clé, définir son utilité, définir une phrase secrète et distribuer sa clé publique au ordinateur que vous allez utiliser avec ssh. Aucune commande de terminal n'est nécessaire.
Vous créez le mot de passe par:
en sélectionnant Fichier-> Nouveau et en sélectionnant Secure Shell Key. Appuyez sur Continuer.
Tapez un nom descriptif et sélectionnez Create and set up
.
Vous serez invité à saisir une phrase clé deux fois (la deuxième fois pour vérifier que vous ne l'avez pas mal saisie la première fois.
Entrez l'ordinateur sur lequel la clé publique doit être utilisée et le nom d'utilisateur sur cet ordinateur pour lequel vous utiliserez la clé. La clé publique sera copiée sur cet autre ordinateur, en demandant votre mot de passe sur cet ordinateur si nécessaire.
Maintenant, l'onglet My Personal Keys
affichera la clé.
En supposant que gnome-keyring-daemon ait été démarré correctement lorsque vous vous êtes connecté à Lightdm, et à nouveau par votre gestionnaire de session, lorsque vous utilisez la clé pour la première fois avec ssh, vous serez invité à entrer la phrase clé. Dans cette boîte de dialogue, vous pouvez fournir la phrase clé, sélectionner le contrôle Details
et demander à ce que le trousseau de clés soit déverrouillé chaque fois que vous êtes connecté - en fournissant automatiquement cette clé. presse OK
Il se peut que vous ne soyez pas invité de cette manière si une autre clé est disponible pour vous connecter à l'ordinateur distant.
Une fois cette opération accomplie, le premier onglet Seahorse Passwords
listera une "entrée de mot de passe de déverrouillage" pour le nom de la clé. Cliquez sur le triangle avant "Mots de passe: Connexion" pour le voir.
C’est probablement ce que vous voulez: entrer une fois la phrase secrète de la clé la rend disponible à tout moment chaque fois que vous êtes connecté. Cela fonctionnera pour la plupart des utilisateurs qui utilisent les ordinateurs de bureau Unity ou Gnome.
Lorsque vous vous connectez après avoir ajouté la clé publique au serveur distant, vous obtenez la boîte de dialogue de l'interface graphique ssh-add:
Développez les "Détails" en cliquant sur le triangle et vous obtiendrez le ci-dessous. La valeur par défaut est "verrouiller le trousseau de clés lorsque je me déconnecte", ce qui vous oblige à saisir le mot de passe une fois par session:
Changez-le en Déverrouillez automatiquement ... chaque fois que je suis connecté , ce qui signifie que cela fonctionnera chaque fois que vous serez connecté à votre session - c'est " contrôlé "par votre mot de passe utilisateur. Il persistera après les redémarrages.
Entrez une fois le mot de passe clé de la clé et le tour est joué: la clé est authentifiée via la première connexion réussie à votre environnement de bureau.
Testé avec une nouvelle installation d'AwesomeWM dans un nouvel ID utilisateur
Par défaut, AwesomeWM utilise ssh-agent
:
$ export | grep SSH déclarer -x SSH_AGENT_PID = "5479" déclarer -x SSH_AUTH_SOCK = "/ tmp/ssh-fWCKNnPq5440/agent.5440"
Pour que les étapes ci-dessus fonctionnent, vous devez utiliser gnome-keyring-daemon
en tant que démon d'authentification SSH, et non pas ssh-agent. Lorsque vous vous connectez à l'aide de lightdm, PAM lance gnome-keyring-daemon
qui tente de déverrouiller une clé de connexion avec votre mot de passe de déverrouillage, mais vous devez ajouter à votre configuration pour la maintenir en fonctionnement et l'utiliser.
Ajoutez ce qui suit à la fin de votre ~/.xprofile
:
#!/bin/bash eval $ (gnome-keyring-daemon --start) export SSH_AUTH_SOCK export GNOME_KEYRING_PID export GNOME_KEYRING_CONTROL .____.]
Les commandes du fichier ~/.xprofile
seront exécutées par xsession avant de démarrer le gestionnaire de fenêtres awesome et seront liées au processus gnome-keyring-daemon --login
lancé par PAM via l'environnement ci-dessus. variables.
ssh user@Host
, vous devriez obtenir les fenêtres contextuelles ci-dessus. Utilisez-les pour décoder vos clés privées dans ~/.ssh/et sauvegardez-les dans le trousseau de clés de connexion gnome-keyring.est d'utiliser gnome-keyring-daemon
au lieu de ssh-agent
. Pour cela, vous devez exécuter gnome-keyring-daemon
et l'initialiser et faites-le après le démarrage de ssh-agent
ou ne démarrez pas du tout ssh-agent
.
ssh
(en réalité ssh-add) décide quel agent d'authentification à appeler en fonction de la valeur de la variable d'environnement SSH_AUTH_SOCK
, qui peut être vérifiée en tapant export | grep SOCK
ceci est de la forme SSH_AUTH_SOCK=/tmp/ssh-MMFyVlI22130/agent.22130
pour ssh-agent (PAS ce que vous voulez pouvoir sauvegarder votre clé)
mais de la forme SSH_AUTH_SOCK="/tmp/keyring-mEQB5g/ssh"
pour gnome-keyring-daemon que vous voulez)
alors vérifiez la valeur et vérifiez avec ps aux | grep keyring
que gnome-keyring-daemon est en cours d'exécution et, si c'est le cas, initialisez-le avec les résultats de gnome-keyring-daemon --start
vous pouvez ensuite vérifier les identités enregistrées associées dans la console en tapant ssh-add -l
- si "aucun agent" ne s'affiche, vous avez alors commis une erreur en configurant gnome-keyring-daemon.
La solution à votre problème consiste à utiliser l'agent ssh. Il vous suffit de déverrouiller le mot de passe de votre clé une fois, après quoi il est conservé en mémoire par l'agent et utilisé automatiquement.
ssh-keygen -t dsa
ssh-copy-id
pour cela).ssh-add
avant de vous connecter au système distant, cela vous demandera votre phrase secrète et le stockerassh-agent est bien décrit sur le .net, par exemple ici:
Un autre avantage de ssh-agent est que si vous vous connectez au système distant avec ssh -A [email protected]
, vous pouvez continuer à utiliser ssh de l’ordinateur domain.name vers un troisième ordinateur contenant votre clé publique sans que chaque clé privée ne soit copiée sur l’ordinateur domain.name (et ce ne voit jamais votre clé privée, seulement le défi/la réponse unique).