OSX ssh-agent: pas de collage de mot de passe et problème avec PKCS # 8?

37

J'utilise ssh sur ma machine et j'ai mis en place une phrase de passe longue, non conviviale, qui est enregistrée dans mon gestionnaire de mots de passe. Ce qui me rend fou à chaque fois, c'est que je ne peux pas coller dans la fenêtre illustrée ci-dessous. Je connais l' Remember password in my keychainoption et l'utilise. Parfois, je dois cependant en entrer un nouveau. Pourquoi ne puis-je pas coller dans un champ de mot de passe?

Même chose pour la boîte de dialogue qui s’affiche lorsque vous insérez des disques chiffrés.

fenêtre ssh-agent

Quelques mises à jour:

  1. J'ai découvert comment contourner le dialogue: il suffit d'utiliser ssh-add -K ~/.ssh/id_rsa, puis je peux coller la phrase secrète dans le terminal.
  2. Comme Mattmcmanus l'a mentionné, ma clé est chiffrée à l'aide d'une clé pkcs8cassée sur l'agent ssh de Yosemite. Ceci n’a aucun rapport avec le problème ci-dessus, mais m’a surgi à la même époque (lisez ici ).
  3. utiliser ssh-add ne résout toujours pas ce problème pour les disques chiffrés.
Joni
la source
Vous devriez accepter l'une des bonnes réponses ci-dessous. Vous devez également éviter de poser plusieurs questions dans un seul post.
Alain O'Dea le
1
@ AlainO'Dea D'abord, oui, c'est une vieille question et je l'ai oubliée. Pour la deuxième chose cependant: au moment de demander, il n'était pas clair que le deuxième problème (PKCS cassé) se poserait, voir l'historique d'édition.
joni

Réponses:

22
  1. La boîte de dialogue pour ssh-agent peut être contournée en ajoutant la clé dans la console / terminal: ssh-add ~/.ssh/id_rsa. Vous pouvez ensuite coller le mot de passe dans le terminal. En outre, l'ajout de l' -Koption à ssh-addpermettra de l'enregistrer dans le trousseau, conformément aux commentaires d'Oliver Lacans.
  2. Comme Mattmcmanus l'a dit, le id_rsacryptage utilisant PKCS semble être rompu sur OSX Mavericks ssh-agent. La solution rapide consiste à déchiffrer le fichier de clés et à le chiffrer à nouveau à l'aide de la procédure ssh standard (méthode de dérivation de clé: MD5 ...):

mv id_rsa id_rsa.pkcs
openssl rsa -in id_rsa.pkcs -out id_rsa
# enter passphrase to decrypt
chmod 0600 id_rsa
ssh-keygen -f id_rsa -p
# enter passphrase to encrypt again
Joni
la source
3
Bien que la réponse de joni soit excellente, je vous recommanderais de ssh-add -K ~/.ssh/id_rsachoisir "Enregistrer les mots de passe dans votre trousseau" ssh-add --help. Cela vous évitera d'avoir à réexécuter ssh-addchaque fois que vous ouvrez un nouvel onglet de shell ou lorsque vous redémarrerez votre ordinateur.
Olivier Lacan
2

Est-ce une clé PKCS # 8 et êtes-vous sur mavericks? Si tel est le cas, cela semble complètement rompu. Pas sûr qu'il y ait encore une solution.

mattmcmanus
la source
1
pourquoi cela devrait-il être? Le problème jusqu'à présent est simplement que le champ mot de passe de la boîte de dialogue n'accepte pas le collage. Cela existait déjà sur 10.8, mais à cause de la mise à jour à 10.9, je dois entrer à nouveau le mot de passe.
joni
OK, vous semblez avoir raison ... regardez ma propre réponse.
joni
2

Sur Mac OS X El Capitan, la commande ssh-add peut le faire avec une option -K :

$ ssh-add -K ~/.ssh/id_rsa
Enter passphrase for /Users/your.username/.ssh/id_rsa:

Vous pouvez coller votre mot de passe dans cette invite avec -V .

Une session pour cela ressemble à ceci:

$ ssh-add -K ~/.ssh/id_rsa
Enter passphrase for /Users/your.username/.ssh/id_rsa:
Passphrase stored in keychain: /Users/your.username/.ssh/id_rsa
Identity added: /Users/your.username/.ssh/id_rsa (/Users/your.username/.ssh/id_rsa)

Extrait pertinent de SSH-ADD (1) élevé avec l' homme ssh-add :

-K Lors de l'ajout d'identités, chaque phrase secrète sera également stockée dans votre trousseau. Lors de la suppression des identités avec -d, chaque phrase secrète sera supprimée de votre trousseau.

INFOSEC NOTE : Votre mot de passe ne sera pas affiché dans le shell, mais sera exposé à toutes les applications en cours d'exécution via le Presse-papiers. Une solution autotype serait plus sécurisée.

Alain O'Dea
la source
1

Vous pouvez exécuter un script comme celui-ci dans l'éditeur AppleScript:

tell application "System Events" to tell process "SecurityAgent"
    set value of text field 2 of scroll area 1 of group 1 of window 1 to "pa55word"
    click button 2 of group 2 of window 1
end tell
Lri
la source
1
merci, cela aidera pour les dialogues «disques cryptés». Mais pourquoi Apple a-t-il désactivé ce champ pour le collage ???
joni
Bien pratique, mais oui, ne croyez pas que cela résout le problème de PKCS # 8, où même si vous entrez le bon mot de passe, le mot de passe composé est incorrect.
Bob Aman
N'a pas de sens. Maintenant, votre mot de passe hautement confidentiel est ouvert à tous. C'est pourquoi le TS utilise un gestionnaire de mots de passe pour centraliser et protéger ses mots de passe.
Whaefelinger
1
Ça ne marche pas sur El Capitan. Tout d'abord, il demande à l'éditeur de script d'obtenir le contrôle d'assistance une System Events got an error: Script Editor is not allowed assistive access. fois autorisé dans les préférences système | Sécurité et confidentialité que je reçoisSystem Events got an error: Can’t get window 1 of process "SecurityAgent". Invalid index.
Alain O'Dea
1

J'ai eu le même problème. Après avoir trouvé cette question, j'ai continué à chercher et à trouver une réponse ailleurs. C'est une question plus ancienne, mais elle n'a pas de réponse acceptée et reste en tête des listes de recherche. (pas sûr de l'étiquette stackexchange sur ça).

RE ne pas être en mesure de copier / coller: c'est apparemment par conception. Le but est d'empêcher tout accès au champ à partir du presse-papiers pour empêcher un programme malveillant de supprimer les zones de mot de passe. Je pense que le collage (et non la découpe) devrait être autorisé, mais il y a peut-être une raison technique.

Pour ce qui est de ssh-agent, à partir de (au moins) Yosemite, l' -Koption dans ssh-add -K ~/.ssh/blahfait ce que vous voulez - tapez le mot de passe une fois, il est stocké dans votre trousseau, et ssh-agent se déverrouillera de manière transparente pour vous. Pour être plus en sécurité, je mets mes mots de passe ssh dans un trousseau distinct qui se verrouille périodiquement.

Périlleux
la source
Avez-vous une chance de partager un lien vers la réponse trouvée?
John Carney
Désolé pour ça! Pour les choses sur ssh-agent, je suis tombé sur developer.apple.com/library/mac/documentation/Darwin/Reference/…
PerilousApricot, le
0

L'utilisation de brew openssl et openssh résout le problème.

brew update
brew install openssl
brew link openssl --force
brew install openssh

# confirm correct bins are being used
# both should be located in /usr/local/bin
which openssl
which openssh

# add key back to keychain
ssh-add ~/.ssh/id_rsa

Je ne sais pas si la force qui relie OpenSL casse quelque chose sur Mavricks. Jusqu'à présent, je n'ai pas remarqué de problèmes.

simple10
la source
1
Il n'y a pas (plus une) brewformule pour openssh.
Adam Liter
Il y a toujours brew tap homebrew/dupescependant. Cela dit, ces étapes ne semblent pas résoudre ce problème pour moi.
Bob Aman
@ simple10 Cette réponse fournit peu ou pas de valeur. Vous devez au moins fournir la version de openssl / openssh qui résout le problème. De plus, veuillez expliquer pourquoi.
Whaefelinger