Komenda ssh-add nie dodaje mojej tożsamości do ssh-agent


20

Właśnie zainstalowałem Ubuntu 13.10 i miałem właśnie dodać swoją tożsamość do mojego agenta ssh, więc otworzyłem Terminal i zrobiłem to

bjorgvin@buntu:~$ ssh-add -l
The agent has no identities.
bjorgvin@buntu:~$ ssh-add
bjorgvin@buntu:~$ ssh-add -l
The agent has no identities.
bjorgvin@buntu:~$ 

jakieś pomysły?

Odpowiedzi:


26

Od man ssh-add:

ssh-add dodaje tożsamość klucza prywatnego do agenta uwierzytelniania, ssh-agent (1). Po uruchomieniu bez argumentów dodaje pliki ~ / .ssh / id_rsa, ~ / .ssh / id_dsa, ~ / .ssh / id_ecdsa i ~ / .ssh / ident.. [...]

Pliki tożsamości nie powinny być odczytywane przez nikogo poza użytkownikiem. Zauważ, że ssh-add ignoruje pliki tożsamości, jeśli są dostępne dla innych.

Tak więc, z powodu The agent has no identities.błędu, prawdopodobnie nie masz tych plików, a może te pliki są dostępne dla innych. Możesz to sprawdzić za pomocą następującego polecenia:

ls -l ~/.ssh

Ponadto po uruchomieniu ssh-addpolecenia uruchom, echo $?aby zobaczyć status błędu poprzedniego polecenia. Jeśli status wyjścia zwrócił 0, polecenie zostało wykonane pomyślnie. Jeśli status wyjścia zwrócił wartość niezerową, wykonanie polecenia nie powiodło się.

Zobacz man ssh-addwięcej informacji.


prawda, nie mam tych plików, a wartość wyjściowa ssh-addto 1, ale nie 0. Oczywiście mam pewien problem z moimi uprawnieniami, ponieważ pliki nie są tworzone. Masz pomysł, jak to naprawić? katalog ~/.sshistnieje (jest pusty), ale nie pokazuje się, kiedy to robięls -l
bjorgvin,

Uruchomiłem to polecenie, ssh-keygen -q -t rsa -N 'password' -f ~/.ssh/id_rsawięc pomógł mi ssh-keygen , dzięki.
bjorgvin

1
To dało mi wskazówkę dotyczącą importu we właściwym kierunku. Miałem wiele kluczy ssh i najpierw musiałem dodać odpowiedni klucz za pomocą ssh-add <nazwa_klucza>. Potem zadziałało jak zaklęcie. thx
paulroho,

3
Z jakiegoś powodu nie miałem żadnych danych wyjściowych podczas uruchamiania ssh-addpo wprowadzeniu hasła (nie powiodło się zgodnie z $?returing 1. Próbowałem chmod 600 ~/.ssh/id_rsa* bez powodzenia. Wygenerowałem nowy klucz od zera ssh-keygeni wtedy zadziałało. Smutne, ale przynajmniej to jest ok teraz (Nie udało się wygenerować klucza przy użyciu ssh-keygen -t rsa -b 4096 -C "your_email@example.com", ssh-keygentym razem uruchomiłem tylko zamiast tego).
GabLeRoux

1
Musiałem wykonać następujące czynności w tej kolejności: (w razie potrzeby wygeneruj nowy klucz ssh i upewnij się, że dodałeś klucz .pub do github), a następnie, cd ~/.ssh && ls -lahaby zobaczyć uprawnienia do odczytu / zapisu w folderze .ssh, zmień wszystkie klucze ) przy chmod 400 myKeyczym ssh-add **ABSOLUTE**pathToKey , jeśli nie dodać ABSOLUTE ścieżkę, to nie będzie działać. Następnie przetestuj za pomocąssh -vT git@github.com
Jungledev

3

Oprócz powyższych rozważań, odkryłem, że jeśli używasz alternatywnej powłoki, być może będziesz musiał ją skonfigurować, aby ładowała ssh-agent. Na przykład, w zsh, należy dodać ssh-agentdo pluginsIN .zshrc.

Ta metoda działa świetnie na Ubuntu 17.10 z najnowszym Zsh

Inni stwierdzili, że z id_ed25519kluczami rsadziałał bez wtyczki. Po dodaniu ssh-agentdo ~/.zshrc, uruchom ponownie powłokę za pomocą exec "$SHELL"i wykonaj:ssh-add ~/.ssh/id_ed25519

Enter passphrase for ~/.ssh/id_ed25519: 
Identity added: ~/.ssh/id_ed25519 (user@host)

Dodaj wtyczkę ssh-agent do .zshrc, postępując zgodnie z instrukcjami tutaj: github.com/robbyrussell/oh-my-zsh/tree/master/plugins/ssh-agent
Kariem
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.