OSX ssh-agent: brak wklejania hasła i problem z PKCS # 8?

37

Używam ssh na swoim komputerze i skonfigurowałem długie, nie przyjazne dla człowieka hasło, które jest zapisane w moim menedżerze haseł. Co mnie wariuje za każdym razem, że nie mogę wkleić w okno pokazane poniżej. Znam tę Remember password in my keychainopcję i korzystam z niej. Czasami jednak muszę wprowadzić nowy. Dlaczego nie mogę wkleić w polu hasła?

To samo dotyczy okna dialogowego, które pojawia się podczas podłączania zaszyfrowanych dysków.

okno ssh-agent

Niektóre aktualizacje:

  1. Dowiedziałem się, jak mogę ominąć okno dialogowe: wystarczy użyć ssh-add -K ~/.ssh/id_rsa, a następnie wkleić hasło do terminala.
  2. Jak wspomniano mattmcmanus, mój klucz jest szyfrowany przy użyciu, pkcs8który został złamany na agencie ssh agenta Yosemite. Nie ma to związku z powyższym problemem, ale przyszło mi to do głowy w tym samym czasie (czytaj tutaj ).
  3. używanie ssh-add nadal nie naprawia tego dla szyfrowanych dysków.
joni
źródło
Powinieneś zaakceptować jedną z dobrych odpowiedzi poniżej. Powinieneś także unikać zadawania wielu pytań w jednym poście.
Alain O'Dea
1
@ AlainO'Dea Po pierwsze, tak, powinienem, to stare pytanie i zapomniałem o tym. Po drugie: w momencie zapytania nie było jasne, czy pojawi się drugi problem (zepsuty PKCS), zobacz historię edycji.
joni

Odpowiedzi:

22
  1. Okno dla ssh-agent można obejść dodając klucz w konsoli / terminalu: ssh-add ~/.ssh/id_rsa. Następnie możesz wkleić hasło do terminala. Ponadto dodanie -Kopcji ssh-addzapisania go w pęku kluczy zgodnie z komentarzem Olivera Lacansa.
  2. Jak powiedział Mattmcmanus, id_rsaszyfrowanie przy użyciu PKCS wydaje się być zepsute w ssh-agent OSX Mavericks. Szybkim obejściem jest odszyfrowanie pliku klucza i zaszyfrowanie go ponownie standardową procedurą ssh (metoda wyprowadzania klucza: 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
źródło
3
Chociaż odpowiedź Joni jest doskonała, poleciłbym, ssh-add -K ~/.ssh/id_rsaktóre „Przechowuj hasła w pęku kluczy” według ssh-add --help. Zapobiegnie to ponownemu uruchamianiu przy ssh-addkażdym otwarciu nowej karty powłoki lub po ponownym uruchomieniu komputera.
Olivier Lacan,
2

Czy to klucz PKCS # 8 i czy jesteś indywidualistą? Jeśli tak, to wydaje się, że został całkowicie zniszczony. Nie jestem pewien, czy istnieje jeszcze rozwiązanie.

mattmcmanus
źródło
1
dlaczego tak powinno być? Problem polega na tym, że pole hasła w oknie dialogowym nie akceptuje wklejania. To już istniało w wersji 10.8, ale z powodu aktualizacji do wersji 10.9 muszę ponownie wprowadzić hasło.
joni
OK, wydajesz się mieć rację ... spójrz na moją własną odpowiedź.
joni
2

W Mac OS X El Capitan polecenie ssh-add może to zrobić z opcją -K :

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

Możesz wkleić hasło do tego monitu za pomocą ⌘-V .

Sesja do tego wygląda następująco:

$ 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)

Odpowiedni fragment SSH-ADD (1) przywołany z man ssh-add :

-K Podczas dodawania tożsamości każde hasło będzie również przechowywane w pęku kluczy. Podczas usuwania tożsamości za pomocą opcji -d każde hasło zostanie usunięte z pęku kluczy.

UWAGA INFOSEC : Twoje hasło nie będzie widoczne w powłoce, ale będzie widoczne dla wszystkich działających aplikacji za pośrednictwem schowka. Rozwiązanie z autotypem byłoby bezpieczniejsze.

Alain O'Dea
źródło
1

Możesz uruchomić taki skrypt w AppleScript Editor:

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
źródło
1
dzięki, to pomoże w dialogach „zaszyfrowanych dysków”. Ale dlaczego Apple wyłączył to pole do wklejania?
joni
Przydatne, ale tak, nie sądzę, że rozwiązuje to problem PKCS # 8, w którym nawet jeśli wpiszesz poprawne hasło, wyświetli złe hasło.
Bob Aman
Nie ma sensu. Teraz Twoje ściśle tajne hasło jest otwarte dla wszystkich. Właśnie dlatego TS używa menedżera haseł, aby jej hasła były scentralizowane i wysoce chronione.
whaefelinger
1
Nie działa na El Capitan. Najpierw prosi edytora skryptów o uzyskanie kontroli System Events got an error: Script Editor is not allowed assistive access. pomocniczej, gdy jest to dozwolone w Preferencjach systemowych | Bezpieczeństwo i prywatność mamSystem Events got an error: Can’t get window 1 of process "SecurityAgent". Invalid index.
Alain O'Dea
1

Miałem ten sam problem. Po znalezieniu tego pytania szukałem odpowiedzi w innym miejscu. To jest starsze pytanie, ale nie ma akceptowanych odpowiedzi i wciąż jest wysoko na listach wyszukiwania. (nie jestem pewien co do etykiety wymiany stosu).

RE nie może skopiować / wkleić: Wygląda na to, że jest zaprojektowany. Chodzi o to, aby uniemożliwić wszelki dostęp do pola ze schowka, aby złośliwy program nie skrobał pól haseł. Myślę, że wklejanie (a nie wycinanie) powinno być dozwolone, ale może jest jakiś techniczny powód.

W przypadku ssh-agent, od (przynajmniej) Yosemite, -Kopcja ssh-add -K ~/.ssh/blahrobi to, co chcesz - wpisz hasło raz, jest ono przechowywane w twoim pęku kluczy, a ssh-agent odblokuje się dla ciebie. Aby być bezpieczniejszym, umieszczam moje hasła ssh w osobnym pęku kluczy, który okresowo się blokuje.

PerilousApricot
źródło
Czy jest szansa, że ​​możesz udostępnić link do znalezionej odpowiedzi?
John Carney,
Przepraszam za to! Jeśli chodzi o rzeczy ssh-agent, natknąłem się na developer.apple.com/library/mac/documentation/Darwin/Reference/…
PerilousApricot
0

Korzystanie z brew openssl i openssh rozwiązuje problem.

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

Nie jestem pewien, czy force linking openssl psuje coś na Mavricks. Do tej pory nie zauważyłem żadnych problemów.

simple10
źródło
1
Nie ma (już) brewwzoru na openssh.
Adam Liter
Jest brew tap homebrew/dupesjednak nadal . To powiedziawszy, te kroki nie rozwiązały dla mnie tego problemu.
Bob Aman
@ simple10 Ta odpowiedź ma niewielką lub żadną wartość. Powinieneś przynajmniej podać wersję openssl / openssh, która rozwiązuje problem. Dodatkowo proszę wyjaśnić, dlaczego tak się stanie.
whaefelinger