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.

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

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.


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.


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

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.


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.


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
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.