Za każdym razem, gdy przesyłam SSH do innego serwera z naszego bezgłowego serwera Ubuntu, jestem proszony o hasło do mojego pliku klucza. Nawet jeśli wcześniej łączyłem się z serwerem.
Czy masz jakiś pomysł, dlaczego to może? Może to być coś tak prostego, jak ssh-agent
obecnie nie uruchomione lub coś takiego.
Ten sam klucz na moim pulpicie Ubuntu Gnome działa dobrze. Zarówno na serwerze, jak i na komputerze działa Ubuntu 10.10.
ps -ef | grep '[s]sh-agent'
simon 3219 1 0 12:46 ? 00:00:00 ssh-agent
ssh-agent
działa:ps -ef | grep '[s]sh-agent'
Odpowiedzi:
Nawet jeśli agent jest włączony, jeśli niektóre zmienne środowiskowe nie są ustawione, nie ma odniesienia do agenta. Ponadto, nawet jeśli wszystko jest w porządku, agent i zmienne, tożsamość nie jest automatycznie wysyłana do agenta: jest to zadanie
ssh-askpass
, które działa tylko w sesjach X.Jeśli używasz bash, utwórz plik
~/.bash_profile
z tą zawartością:zmodyfikuj nazwę pliku
~/.ssh/id_dsa
zgodnie ze swoimi potrzebami i dodaj ten wiersz do~/.bash_logout
Ostatnia uwaga: nie koliduje to z sesją gnome, ponieważ w takim przypadku
~/.profile
jest to tylko źródło i możesz skorzystać zssh-askpass
interfejsu graficznego, który prosi o hasło i wysyła je dossh-agent
.źródło
ssh
na inne maszyny. Ale nie działa, gdy używaszgit
do wypychania lub ciągnięcia publicznego repozytorium. Czy masz jakieś pomysły, jak mogę to rozwiązać?ssh()
, wywołaj jągit()
i zmień ostatnią linię z/usr/bin/ssh
na/usr/bin/git
. Dodaj także ostatnią linię za pomocąexport -f git
.ssh
do komputera zbash_profile
plikiem utworzonym powyżej instalacji, pyta mnie o hasło klucza. Z jakiegoś powodu teraz za każdym razem, gdy ssh w nim pyta, jeszcze zanim wykonałemssh
lubgit
. Na stronie gist.github.com/942082 znajduje się monit o zwrot, gdy loguję się na maszynie naruszającej prawo.git
wchodzić w interakcjessh
i nie używam,git
więc nie mogę spróbować. Zmodyfikowałem,~/.bash_profile
aby uwzględnićgit()
funkcję, o której wspomniałem powyżej, aby mieć pewność, że moje poprzednie wyjaśnienie było jasne. Wydaje się również, że na podstawie danych wyjściowych zmodyfikowano maszynę serwerową, ale wszystkie moje porady były skierowane tylko do maszyny klienta.git
wypycham z niego centralną kuźnię / repozytorium, aby plik był we właściwym miejscu. Myślę, że właśnie dałeś mi wskazówkę / pobudziłeś moje myśli. Mam specjalny monit bash, który wyświetla gałąź gitpwd
. Założę się, że to właśnie powoduje żądanie hasła przy logowaniu do bash, ponieważ próbuje ono uzyskać statystyki przed wyświetleniem monitu o bash!Niedawno zacząłem używać ssh-ident:
https://github.com/ccontavalli/ssh-ident
wszystko, co musisz zrobić, to dodać coś takiego:
w twoim
.bashrc
. Alternatywnie możeszln -s /path/to/ssh-ident ~/bin/ssh
lub inny katalog w swojej ŚCIEŻCE przed/bin
i/usr/bin
.źródło
To pytanie ma dość dobrą odpowiedź w SuperUser .
Znalazłem wskazówkę do korzystania Brelok całkiem użyteczne.
źródło