Istnieje wiele sprzecznych informacji, które czytałem za każdym razem, gdy szukam informacji o korzystaniu ssh-agent
(proces zapisywania / ponownego użycia hasła) w systemie Mac OS X. Większość zasobów wydaje się sugerować, że zwykłe wydanie ssh-add -K
pozwoli ci przechowywać twoje hasło i automatycznie skonfiguruje system operacyjny X, aby uruchomić się ssh-agent
automatycznie i załadować zapisane hasło.
Uwaga: Bieg ssh-add -K
będzie działać tylko wtedy, gdy masz swój plik klucza prywatnego w jednej z typowych miejsc, te miejsca są ograniczone do: ~/.ssh/id_rsa
, ~/.ssh/id_dsa
, ~/.ssh/identity
. Jeśli plik znajduje się gdziekolwiek indziej, należy podać tę ścieżkę po -K w powyższym poleceniu.
Powód, dla którego pojawia się okno dialogowe hasła pliku klucza podczas łączenia się z drugim serwerem (bez klucza), jest prawdopodobne, ponieważ domyślna konfiguracja serwerów SSH polega na pierwszym użyciu uwierzytelniania za pomocą klucza publicznego, a następnie na uwierzytelnianiu „interaktywnym za pomocą klawiatury”.
Ponieważ masz klucz publiczny o standardowej nazwie / lokalizacji ( ~/.ssh/id_rsa
), twój klient OpenSSH pomaga authorized_keys
przesłać klucz prywatny, aby umożliwić serwerowi dopasowanie go do dozwolonego pliku.
Istnieje kilka sposobów, aby temu zapobiec, najłatwiejszym sposobem jest przekazanie flagi w wierszu polecenia lub dodanie jej jako stałego elementu konfiguracji w ~/.ssh/config
pliku.
Podczas łączenia z serwerem dodatkowym / bez klucza można dodać -o „PubkeyAuthentication = no” podczas łączenia. Coś jak ssh -o "PubkeyAuthentication=no" me@devserver2
.
Otwórz ~/.ssh/config
w swoim ulubionym edytorze tekstu, utwórz go najpierw, jeśli musisz, i wprowadź następujące dane:
Host devserver2
User me
PubkeyAuthentication no
Teraz, jeśli po prostu wpiszesz ssh devserver2
nazwę użytkownika, konfiguracja klucza publicznego zostanie wczytana i użyta, i powinieneś zostać poproszony o podanie hasła i nic więcej.
( Uwaga: Zamień devserver2 na rzeczywistą nazwę hosta serwera. Alternatywnie, wybierz ładną nazwę hosta, taką jak devserver2, i dodaj właściwość między User a PubkeyAuthentication o nazwie „Hostname” i umieść tam nazwę lub adres IP serwera. Następnie, możesz po prostu wpisać „ssh devserver2”, a wszystkie właściwości konfiguracji będą działać zgodnie z nimi.)