Klucz bez hasła jest zależny od tego, że nikt inny nie jest w stanie uzyskać tego klucza (kto i tak nie byłby w stanie uzyskać dostępu do zasobów, do których daje dostęp). Tak więc, jeśli klucz zapewnia dostęp do sąsiedniej maszyny, a obie maszyny mają ten sam poziom bezpieczeństwa elektronicznego i fizycznego, to nie jest to żadna wielka sprawa.
Z drugiej strony, jeśli twój klucz znajduje się na maszynie o słabym bezpieczeństwie (być może ma wielu niezaufanych użytkowników, jest łatwo dostępny fizycznie lub nie jest odpowiednio aktualizowany przy użyciu swojego systemu poprawiania), prawdopodobnie nie „ nie chcę mieć kluczy bez hasła.
Ostatecznie zależy to od zaufania do konfiguracji i oceny ryzyka / kosztów związanych z jej wykonaniem - jeśli możesz być całkiem pewny, że atakującemu nie jest łatwiej uzyskać dostęp do klucza niż do zasobu, do którego klucz daje dostęp , więc nic ci nie jest. Jeśli nie masz takiej pewności, prawdopodobnie powinieneś naprawić powody :)
inne rozwiązanie, zwiększające bezpieczeństwo i ułatwiające ci pracę, dzięki czemu nie musisz cały czas wpisywać hasła:
jeśli chcesz zaszyfrować swój klucz prywatny, możesz użyć
ssh-agent
na stacji roboczej do „buforowania” niezaszyfrowanego klucza. gdy chcesz przechowywać odszyfrowany klucz, uruchomssh-add ~/.ssh/id_rsa
lub jakikolwiek inny klucz prywatny. zostaniesz poproszony o podanie hasła, a odszyfrowany klucz będzie dostępny dla połączeń ssh, dopóki nie wylogujesz się, nie zabijeszssh-agent
lub nie zamkniesz systemu.możesz
kill
przechowywać zapisane klucze za pomocąssh-agent -k
i możesz przypisać dożywotni czas dla klucza, który ma być w pamięcissh-agent -t [seconds]
, na przykład; jeśli nie chcesz, aby Twój klucz był odszyfrowany na zawsze, ale chcesz dużo sshingować wokół hostów, możesz ustawić limit czasu na 5-10 minut. więc nie musisz ciągle wprowadzać hasła swojego klucza.znowu, wszystko to ma związek z tym, jak jesteś pewny bezpieczeństwa swojego / stacji roboczej /, który, jeśli jesteś jedynym, który ma do niego dostęp i masz dość bezpieczne hasło lokalne, a ty nie zapraszaj na siebie exploity i rootkity, twój klucz prywatny bez hasła jest dość bezpieczny.
jeśli jesteś podobny do mnie i trzymasz swój klucz prywatny na pendrivie, na pewno będziesz chciał go zaszyfrować, nawet jeśli jest to tylko klucz prywatny (osobny, z którego korzystam na mojej stacji roboczej, więc jeśli zgubiłem klucz, mogę z łatwością usunąć klucz publiczny z pendrive'a z
~/.ssh/authorized_keys
listy mojego serwera , co również powoduje / doskonały / powód dodawania PRZYDATNYCH komentarzy do twoich kluczy publicznych)w odpowiedzi na poprzednią odpowiedź powiedziałeś, że tylko osoby, którym ufasz, mają dostęp do komputera za pomocą kluczy. Chcę tylko wyjaśnić, że Twój klucz prywatny NIE musi znajdować się na serwerze, z którym się łączysz, w przypadku, gdy to robisz. tylko twój klucz publiczny musi znajdować się na serwerze, i to nie jest problem, dlatego jest to klucz „publiczny”.
och, zapomniałem wspomnieć; uruchamiam
ssh-agent
po uruchomieniu X, w przeciwnym razie odszyfrowane klucze, które przechowuję,ssh-add
nie są zachowywane przez różnexterm
sesje i muszę ponownie wprowadzić hasło za każdym razem, gdy zamykamxterm
uruchamianessh-add
w. w moim~/.xinitrc
pliku mam:Mam wezwanie do
ssh-agent
zawinięcia,eval
ponieważ ssh-agent zwraca niektóre zmienne środowiskowe, które muszą zostać ustawione podczas działania, i uruchomić~/.xinitrc
, zmienne środowiskowe są stałe podczas sesji X.źródło
ssh-agent
i użyjeszssh -A -i privkey user@host
, pozwoli on na przekazywanie agentów ssh, co umożliwi ci dostęp do serwera z serwera początkowego, bez umieszczania twojego klucza prywatnego na pierwszym serwerze. Tworzenie łańcuchów ssh nie jest zalecane, nawet bez włączonego przekazywania kluczy ssh, issh -A
ma swoje własne obawy dotyczące bezpieczeństwa. nie ma powodu, dla którego klucz na serwerze nie może być zaszyfrowany, podczas gdy klucz na stacji roboczej jest pozbawiony hasła.Możesz spojrzeć na podobne pytanie, które zadałem na temat prywatnych kluczy SSL dla serwerów sieciowych. Zasadniczo istnieją trzy opcje:
Każdy z nich jest wadliwy, więc wszystko zależy od tego, czego najbardziej się boisz.
źródło
W celu zautomatyzowanego dostępu, który, jak mówisz, wymaga kluczy pozbawionych hasła, zawsze używam dodatkowych opcji uprawnionych kluczy (patrz sshd (8)), aby ograniczyć polecenie, które można uruchomić.
Zazwyczaj dostarczam starannie napisany skrypt na odległym końcu, który wykonuje dokładnie zadanie (lub zadania - może patrzeć na parametry), które chcę mieć dozwolone.
Następnie zamykam go również na adresy IP, które mogą łączyć się z tym kluczem (nie w 100% niezawodny, ale również z ograniczeniem poleceń).
źródło
Tak długo, jak nikt inny niż ty nie ma dostępu do klucza, nie potrzebujesz hasła. W rzeczywistości nie można użyć hasła do kluczy używanych przez zautomatyzowane oprogramowanie.
źródło
Jeśli chcesz użyć ssh do wykonania jakiejkolwiek zautomatyzowanej procedury - myślę konkretnie o czekach Nagios - prawdopodobnie nie chciałbyś użyć hasła.
W tej sytuacji prawdopodobnie nie używałbyś tego poza siecią LAN, a klucz byłby bezpiecznie przechowywany na serwerze wykonującym tę procedurę.
Większość samouczków omawiających SSH przewiduje, że osoba zaloguje się z sieci zewnętrznej, być może z niezabezpieczonego komputera, w którym to przypadku rada jest słuszna.
Zasadniczo, chyba że wiesz, że istnieje dobry powód, aby tego nie robić, utwórz hasło. Zbyt leniwy, aby za każdym razem wpisywać hasło, może być dla Ciebie wystarczającym powodem :-)
źródło