gpg-agent odrzuca klucze SSH z raportowaniem ssh-add „agent odmówił operacji”


12

Używam openssh7.5p1 i gnupg 2.1.21 na arch linux (są to domyślne wersje, które są dostarczane z arch). Chciałbym użyć gpg-agentjako agenta ssh. Umieszczam w moim ~/.gnupg/gpg-agent.conf:

pinentry-program /usr/bin/pinentry-qt
enable-ssh-support

Arch automatycznie uruchamia agenta gpg z systemd, więc ustawiłem

export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/gnupg/S.gpg-agent.ssh"

Kiedy uruchamiam ssh-add -l, nie zgłasza żadnych tożsamości i pszgłasza gpg-agent --supervisedproces zgodnie z oczekiwaniami.

Niestety, kiedy uruchamiam ssh-add, bez względu na typ klucza, nie działa. Oto przykład tego, jak próbowałem dsa:

$ ssh-keygen -f testkey -t dsa -N ''
Generating public/private dsa key pair.
Your identification has been saved in testkey.
Your public key has been saved in testkey.pub.
$ ssh-add testkey
Could not add identity "testkey": agent refused operation

Wszystkie pozostałe funkcje gpg działają poprawnie (szyfrowanie / deszyfrowanie / podpisywanie). Ponadto generowane przeze mnie klucze działają poprawnie, jeśli używam ich bezpośrednio z ssh, i działają poprawnie, jeśli uruchomię ten, ssh-agentktóry był dostarczany z openssh.

Dokumentacja mówi, że ssh-addnależy dodać klucze ~/.gnupg/sshcontrol, ale oczywiście nic się nie dzieje.

Moje pytanie: Jaki jest najłatwiejszy sposób załadowania klucza wygenerowanego przez openssh ssh-keygendo gpg-agenti czy ktoś może wyciąć i wkleić sesję terminalową pokazującą, jak to działa?


Przyjęta odpowiedź pomogła mi, dziękuję za postawienie tego pytania. Zdarza mi się to od czasu do czasu, czy jest jakieś trwałe rozwiązanie?
gf_

Odpowiedzi:


27

Najwyraźniej odpowiedź brzmiała:

echo UPDATESTARTUPTTY | gpg-connect-agent

Nie mam pojęcia, dlaczego program pinentry działał dobrze dla innych zastosowań, takich jak odszyfrowywanie plików, ale nie działał ssh-add.

Chociaż teraz to działa, tworzy również kopię klucza prywatnego ssh, który nie pojawia się pod gpg -Kv, a ponadto nie wydaje się pozwalać na zmianę hasła na kluczu prywatnym (ponieważ nie można go edytować --edit-key) . Zasadniczo jestem bardzo niezadowolony ze sposobu, w jaki gpg-agentzapewnia małą widoczność miejsca, w którym kopiowane są twoje sekrety. Jeśli trafisz na to pytanie, ponieważ masz nadzieję, że gpg-agentmoże być lepszą alternatywą ssh-agent, zachęcam do trzymania się ssh-agentzamiast wypróbowywania mojej odpowiedzi. Głównym powodem, dla którego warto wybrać, gpg-agentjest konieczność korzystania z kart inteligentnych.


Gdzie znalazłeś tę odpowiedź? Działa świetnie!
CMCDragonkai

Dzięki za to, pracował dla mnie. Czy prowadzisz to regularnie? Przy każdym uruchomieniu / logowaniu? Masz pomysł dotyczący „właściwej” poprawki?
gf_


2

W moim przypadku problemem był zastosowany program pinentry. Użyłem emalii pinentry. Wygląda na to, że nie obsługuje podwójnego okna wprowadzania pola tekstowego, które ssh-adduruchamia się, gdy jest używane z gpg-agent.

Usuwanie pinentry-emacs i instalowanie pinentry GTK rozwiązało tutaj problem.


To ostatecznie rozwiązało mój problem po znalezieniu kilku źródeł, które kazały mi zaktualizować tty startowy.
William Rosenbloom
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.