Zazwyczaj łączę się ze zdalnym serwerem za pomocą
ssh użytkownik@server.com -p 11000
a następnie każdemu użytkownikowi podaje hasło. Jak unikać wpisywania hasła przy każdym połączeniu za pomocą ssh?
Zazwyczaj łączę się ze zdalnym serwerem za pomocą
ssh użytkownik@server.com -p 11000
a następnie każdemu użytkownikowi podaje hasło. Jak unikać wpisywania hasła przy każdym połączeniu za pomocą ssh?
Odpowiedzi:
Najpierw wstaw to ~/.ssh/config
:
Host server
HostName server.com
Port 11000
User user
Będziesz mógł ssh server
, a następnie wpisz hasło.
Po drugie , sprawdź, ~/.ssh/
czy masz pliki o nazwach id_rsa
i id_rsa.pub
. Jeśli nie, nie masz skonfigurowanego żadnego klucza, więc musisz wygenerować parę za pomocą ssh-keygen
. Możesz podać kluczom hasło lub nie. Wygenerowany plik id_rsa.pub
powinien wyglądać następująco:
ssh-rsa lotsofrandomtext użytkownik @ lokalny
Po trzecie , ssh do serwera, utwórz plik, ~/.ssh/authorized_keys
jeśli nie istnieje. Następnie dołącz tutaj treść ~/.ssh/id_rsa.pub
wygenerowaną wcześniej. Może to oznaczać skopiowanie zawartości pliku do schowka, a następnie otwarcie ~/.ssh/authorized_keys
w edytorze tekstu i wklejenie tego.
Alternatywnie użyj polecenia ssh-copy-id server
(zamień server
na nazwa w ~/.ssh/config
). To zrobi to samo co powyżej. Czasami widziałem, ssh-copy-id
jak utknąłem, więc nie podoba mi się to.
Powinieneś teraz być w stanie ssh za pomocą just ssh server
, chyba że zdecydowałeś się chronić swój klucz prywatny za pomocą hasła. Zasadniczo, jeśli nie używasz hasła, powinieneś chronić swój klucz prywatny w inny sposób (np. Pełne szyfrowanie dysku).
Po czwarte (potrzebne tylko, jeśli chronisz swój klucz prywatny za pomocą hasła), wstaw to~/.bashrc
:
start_ssh_agent() {
# Try to use an existing agent
save=~/.ssh-agent
if [[ -e "$save" ]]
then
. "$save" > /dev/null
fi
# No existing agent, start a new one
if [[ -z "$SSH_AGENT_PID" || ! -e "/proc/$SSH_AGENT_PID" ]]
then
ssh-agent > "$save"
. "$save" > /dev/null
ssh-add
fi
}
start_ssh_agent
Dzięki temu będziesz musiał wprowadzić hasło tylko raz na rozruch komputera.
User user
linię do ~/.ssh/config
.
Przejdź do uwierzytelniania opartego na kluczach .
ssh -P 11000
mogłem kopiować za pomocą ssh. Wielkie dzięki.
Jako uzupełnienie odpowiedzi phunehehe, zobacz Przewodnik po pęku kluczy Gentoo Linux, który zawiera przewodnik po pęku kluczy . pęku kluczy używa również ssh-agent . Demon ssh-agent udostępnia hasło (staje się niedostępne, gdy umiera demon ssh-agent), ale pęku kluczy reuses an ssh-agent between logins, and optionally prompts for passphrases each time the user logs in
, cytując przewodnik.