Próbowałem zacząć ssh-add
pracę nad RaspberryPi z systemem Raspbian.
Mogę rozpocząć ssh-agent
, gdy to zrobię, daje następujące dane wyjściowe do terminala:
SSH_AUTH_SOCK=/tmp/ssh-06TcpPflMg58/agent.2806; export SSH_AUTH_SOCK;
SSH_AGENT_PID=2807; export SSH_AGENT_PID;
echo Agent pid 2807;
Jeśli uruchomię ps aux | grep ssh
, zobaczę, że działa.
Następnie próbuję uruchomić ssh-add
, aby dodać moje kluczowe hasło, i otrzymuję następujące informacje:
Could not open a connection to your authentication agent.
Jakieś pomysły?
command-line
ssh
ssh-agent
Daniel Groves
źródło
źródło
eval $(ssh-agent)
Odpowiedzi:
Twoja powłoka ma oceniać dane wyjściowe kodu powłoki za pomocą
ssh-agent
. Uruchom zamiast tego:Lub jeśli już uruchomiłeś ssh-agent, skopiuj go i wklej do wiersza poleceń powłoki (zakładając, że używasz powłoki podobnej do Bourne'a).
ssh
polecenia muszą wiedzieć, jak rozmawiaćssh-agent
, wiedzą o tym zeSSH_AUTH_SOCK
zmiennej środowiskowej.źródło
ssh-agent bash
działa), ale nie może zaktualizować pamięci osobnego procesu uruchamiającego obce polecenie (już działająca powłoka).Spróbuj tego:
źródło
ssh-agent /usr/bin/fish
./usr/local/bin/fish
(alternatywnie/usr/ports/shells/fish
). Podziękujwhereis
poleceniu za pomoc w zrozumieniu tego.To pytanie zostało również bardzo dobrze omówione w Stackoverflow .
źródło
`...`
. Bez nich operator split + glob jest wywoływany na wyjściu.Jeśli używasz csh jako powłoki ( FreeBSD PI ) może to działać:
następnie wystarczy zrobić coś takiego:
źródło
Możesz także użyć następującej składni:
źródło
ssh-agent sh -c "ssh-add -l"
, powie ci, że nie masz tożsamości.ssh-agent sh -c "ssh-add && ssh-add -l"
wydrukuje twoją tożsamość.Spróbuj tego: przejdź do
C:\$Installation_Folder$\Git\cmd
i wykonaj:Otworzy polecenie cmd i uruchomi się
ssh-agent
we właściwy sposób.ssh-add ~/.ssh/id_rsa
powinien wtedy działać.źródło
Było to mylące i ma 2 możliwe dobre odpowiedzi, w zależności od tego, czy użytkownik próbuje dodać klucz ssh w systemie Linux lub Windows (tak jak ja). To prawdopodobnie nie odpowiada OP, ale stanowi rozszerzenie dla git-bash. Korzystam zarówno z systemu Windows, jak i Ubuntu w celu programowania, a moja instalacja git jest nieco inna w każdym z nich.
.. była dobrą odpowiedzią dla systemu Windows, ale nie udało się określić, że należy przejść przez Eksploratora Windows, aby znaleźć folder instalacyjny Git, i uruchomić powłokę systemu Windows, aby otworzyć się po zakończeniu kroku 1.
”przejdź do C: \ $ folder_instalacyjny $ \ Git \ cmd "
Krok 2: wystarczy dwukrotnie kliknąć
W kroku 3 wróć do git-bash lub dowolnego emulatora terminali * nix, który uruchomisz, i uruchom ssh-add. Jeśli użyłeś domyślnej nazwy klucza publicznego ssh, nie musisz dodawać nazwy, ponieważ ssh-add korzysta z niej automatycznie.
źródło
Istnieje kilka sposobów na użycie tożsamości z sudo, np
sudo npm install
.Długa droga , ale daje również dostęp do roota, więc nie będziesz musiał
sudo
dużo zużywać .sudo ssh-agent bash
To poprosi o podanie hasła, a następnie uruchomi się
ssh-agent
z uprawnieniami administratora,cd /home/user/.ssh
Stamtąd możesz biegać
Krótko mówiąc , tylko twój użytkownik (chyba że chcesz dużo sudo)
źródło
export
ieval
działa tak samo dobrze, jak root pod warunkiem, że powłoka logowania roota jest jak Bourne. Jeśli powłoka roota to csh lub tcsh, użyjeval `ssh-agent -c`
root
dostęp do swojego agenta ssh, robiącsudo SSH_AUTH_SOCK="$SSH_AUTH_SOCK" npm install...
eval "$(ssh-agent)"
po zachęcie powłoki bash działającej jako root będzie działał. Oczywiście musisz uruchomićssh
z tej powłoki lub jej potomka, aby odziedziczyli zmienną env var SSH_AUTH_SOCK.eval "$(sudo ssh-agent)"; sudo ssh...
nie będzie działać, ponieważsudo
domyślnie nie przekazuje zmiennej env SSH_AUTH_SOCK.eval "$(ssh-agent)"
źle patrzeć później, aby zobaczyć, czy jest jakiś błąd konfiguracji. Chociaż obecny sposób, w jaki podałem ten przewodnik, pozwala na swobodną kontrolę nad tym, kim chcesz być, ponieważ jesteś już rootem i może uzyskiwać dostęp do dowolnych użytkowników id_rsa na serwerze. Więc kiedy już zacznę działać prawidłowo, zredaguj moją odpowiedź.