J'utilise Awesome Window Manager
Comment puis-je ajouter définitivement 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)
MODIFIER :
- Utilisation de la version classique de Gnome (sans effets).
Après avoir ajouté la clé SSH avec ssh-copy-if
à l'hôte distant, je reçois l'invite suivante dans le terminal (GNOME Terminal 3.0.1) lorsque je me connecte:
ssh -i .ssh/Password-Protected-Key user@host
Enter passphrase for key '.ssh/Password-Protected-Key':
- Utilisation du gestionnaire de fenêtres Awesome v3.4.10. Je l'avais déjà
gnome-keyring-dameon
fait, j'ai donc tué l'autre pid et exécutégnome-keyring-daemon --start | grep SOCK
(je l'ai également 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 aucune boîte de dialogue d'ajout de ssh à l'interface graphique.
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 parviens 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 peut-être d'autres ..
la source
Réponses:
Si vous utilisez Unity ou un gestionnaire de session qui démarre gnome-keyring-daemon, vous pouvez simplement utiliser Seahorse (mots de passe et clés) pour établir une clé, définir son utilisation, définir une phrase secrète et distribuer sa clé publique à la ordinateur que vous allez utiliser avec ssh. Aucune commande de terminal n'est nécessaire.
Vous créez le mot de passe en:
en sélectionnant Fichier-> Nouveau et sélectionnez Clé Secure Shell. Appuyez sur Continuer.
Saisissez 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, vous invitant à saisir votre mot de passe sur cet ordinateur si nécessaire.
Maintenant, l'
My Personal Keys
onglet affichera la clé.En supposant que gnome-keyring-daemon a été démarré correctement lorsque vous vous êtes connecté à Lightdm, et à nouveau par votre gestionnaire de session, lorsque vous utilisez la clé avec ssh pour la première fois, vous serez invité à saisir la phrase clé. Dans cette boîte de dialogue, vous pouvez fournir la phrase clé, sélectionner le
Details
contrôle et demander que le trousseau soit déverrouillé chaque fois que vous êtes connecté - en fournissant automatiquement cette clé. presseOKVous ne pouvez pas être invité de cette manière si une autre clé est disponible pour vous connecter à l'ordinateur distant.
Après cela, le premier onglet Seahorse
Passwords
affichera une "entrée de déverrouillage du mot de passe" pour le nom de la clé. Cliquez sur le triangle avant " Mots de passe: Connexion" pour le voir.la source
Faire en sorte qu'une clé SSH protégée par mot de passe persiste entre les sessions et les redémarrages
C'est probablement ce que vous voulez: entrer une fois la phrase de passe clé la rend disponible à tout moment lorsque vous êtes connecté. Cela fonctionnera pour la plupart des utilisateurs qui utilisent les bureaux Unity ou Gnome.
Lorsque vous vous connectez après avoir ajouté la clé publique au serveur distant, vous obtenez la boîte de dialogue GUI 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éverrouiller automatiquement ... chaque fois que je suis connecté , ce qui signifie que cela fonctionnera chaque fois que vous vous serez connecté à votre session - il est "contrôlé" par votre mot de passe utilisateur. Il persistera lors des redémarrages.
Saisissez une fois la phrase secrète de la clé et c'est tout - la clé est authentifiée via la connexion initiale réussie à votre environnement de bureau.
Si vous utilisez AwesomeWM
Testé avec une nouvelle installation d'AwesomeWM dans un nouvel ID utilisateur
Par défaut, AwesomeWM utilise
ssh-agent
:Pour que les étapes ci-dessus fonctionnent, vous devez utiliser
gnome-keyring-daemon
comme démon d'authentification SSH, pas ssh-agent. Lorsque vous vous connectez à l'aide de lightdm, PAM démarregnome-keyring-daemon
qui essaiera de déverrouiller une clé de connexion avec votre mot de passe de déverrouillage, mais vous devez ajouter à votre configuration pour qu'elle continue à fonctionner et à l'utiliser.Ajoutez ce qui suit à la fin de votre
~/.xprofile
:Les commandes du
~/.xprofile
fichier seront exécutées par xsession avant de démarrer le gestionnaire de fenêtres génial et le lieront augnome-keyring-daemon --login
processus démarré par PAM via les variables d'environnement ci-dessus.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 enregistrer vos clés privées dans le trousseau de connexion de gnome-keyring.La solution générale pour tout gestionnaire de fenêtres / environnement de bureau
est d'utiliser à la
gnome-keyring-daemon
place dessh-agent
. Pour cela, vous devez être en cours d'exécutiongnome-keyring-daemon
et l' initialiser et le faire après lessh-agent
démarrage ou ne pas démarrerssh-agent
du tout.ssh
(en fait ssh-add) décide quel agent d'authentification appeler en fonction de la valeur de laSSH_AUTH_SOCK
variable d'environnement, qui peut être vérifiée en tapantexport | grep SOCK
c'est du formulaire
SSH_AUTH_SOCK=/tmp/ssh-MMFyVlI22130/agent.22130
pour ssh-agent (PAS ce que vous voulez pouvoir sauvegarder votre clé)mais du formulaire
SSH_AUTH_SOCK="/tmp/keyring-mEQB5g/ssh"
pour gnome-keyring-daemon (que vous voulez)vérifiez donc la valeur, et vérifiez avec
ps aux | grep keyring
ce gnome-keyring-daemon est en cours d'exécution, et si oui, initialisez-le avec les résultats degnome-keyring-daemon --start
vous pouvez ensuite vérifier les identités enregistrées associées dans la console en tapant
ssh-add -l
- s'il affiche "aucun agent", vous avez fait une erreur lors de la configuration de gnome-keyring-daemon.la source
~/.ssh
, il n'est pas nécessaire d'utiliserssh-add
- la boîte de dialogue apparaîtra lors de la première utilisation. Notez que cela ne fonctionne que dans Unity / Gnome - j'ai découvert dans le chat que l'OP utilise AwesomeWM , où cela ne fonctionne pas!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 la 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 faire passer ssh de l’ordinateur domain.name à un troisième ordinateur contenant votre clé publique sans chaque copie de votre clé privée vers l’ordinateur domain.name (et il ne voit votre clé privée, seulement le défi / réponse unique).la source
vous pouvez utiliser
ssh-add 'filename or fullpath'
on vous demandera la phrase secrète si votre clé en a une
alors vous pouvez vous connecter sans mot de passe
la source
Si vous souhaitez travailler avec des clés privées, procédez comme suit:
Alors:
copier
.ssh/id_rsa.pub
vers la destination de la machine.ssh/authorized_keys
via scpTerminé.
Connectez-vous à la machine distante sans mot de passe:
Et nous n'avons pas d'invite de mot de passe.
la source