Chcę wykonać połączenie ssh bez hasła dla projektu subversion. Obecnie używam ssh + svn i jest to trochę denerwujące, ponieważ muszę wpisać hasło za każdym razem, gdy chcę dokonać transakcji z serwerem.
Znalazłem w Internecie kilka samouczków na temat generowania klucza dla ssh bez hasła, ale wszystkie wydają się zakładać, że używam tej samej nazwy użytkownika w systemie zdalnym, jak w moim systemie domowym. Jednak nazwa użytkownika, której używam dla ssh + svn, jest inna niż nazwa konta użytkownika w systemie, który używam. Jak poprawnie to skonfigurować? Nie miałem szczęścia po prostu zmieniając nazwę w pliku kluczy.
źródło
.ssh/id_rsa.pub
i przesłanie go na zdalny serwer. Kiedy to zrobiłem, skończyło się na localusername @ localsystem. To powinno być zmienione na remoteusername @ remotesystem, prawda? Zarówno lokalnie, jak i zdalnie?id_rsa.pub
doauthorized_keys
zdalnego systemu. To zadziałaMożna to zrobić na dwa sposoby:
1) umieść użytkownika @ w url svn; to mówi svn + ssh, aby zalogował się jako ten użytkownik. Myślę, że jest to zły pomysł z punktu widzenia konserwacji, ponieważ takie elementy zewnętrzne, które wskazują na inne części repozytorium, nie będą działać poprawnie.
2) wykonaj ~ / .ssh / config (udokumentowany jako ssh_config ), który mówi coś takiego:
w ten sposób każda próba ssh do innego systemu będzie domyślnie używać innego użytkownika. Jest to przydatne, gdy wykonujesz ssh ręcznie, a także gdy używasz svn.
źródło
Nie musisz mieć tej samej nazwy użytkownika na obu urządzeniach. Tak długo, jak generujesz klucz (
ssh-keygen
), musisz kopiować linię z~/.ssh/id_rsa.pub
lub~/.ssh/id_dsa.pub
(w zależności od rodzaju klucza) z lokalnego serwera i dołączać go do~/.ssh/authorized_keys
zdalnego.Jeśli nie chcesz pisać za
remoteuser
każdym razem, dołącz do~/.ssh/config
:PS. Nazwa klucza może być w formie
localuser@localhost
, ale jest to tylko nazwa . Może być równie dobrzemyfavouritekey@myfavouritecomputer
i nikogo to nie obchodzi.źródło
ssh-copy-id
skryptu wspomnianego powyżej. Rozumiem to, ponieważ nie wszystkie systemy, z których korzystam, pochodząssh-copy-id
, więc napisałem coś takiego więcej niż kilka razy. :)ssh-copy-id
. Zwykle używamvim
lubseahorse
;)Po utworzeniu .ssh / config i uruchomieniu:
Dostaję błąd:
potem dodaję
chmod 600 .ssh/config
, a potem działa płynnie.źródło