Podoba mi się pomysł uzyskiwania dostępu do serwerów za pomocą kluczy, dzięki czemu nie muszę wpisywać hasła za każdym razem, gdy jestem ssh
w skrzynce, a nawet blokuję hasło (nie root
) użytkownika ( passwd -l username
), więc niemożliwe jest zalogowanie się bez klucza.
Wszystko to psuje się, jeśli muszę podać hasło do sudo
poleceń. Kusi mnie więc, aby skonfigurować hasło bez hasła,sudo
aby było zgodne z logowaniem bez hasła.
Jednak wciąż mam przeczucie, że może mnie to rzucić w nieoczekiwany sposób, po prostu wydaje się niepewne. Czy są jakieś zastrzeżenia przy takiej konfiguracji? Czy poleciłbyś / nie zaleciłbyś zrobienia tego dla konta użytkownika na serwerze?
Wyjaśnienia
- Mówię tutaj o użyciu
sudo
w interaktywnej sesji użytkownika, a nie w usługach i skryptach administracyjnych - Mówię o korzystaniu z serwera w chmurze (więc nie mam fizycznego lokalnego dostępu do komputera i mogę się logować tylko zdalnie)
- Wiem, że
sudo
upłynął limit czasu, w trakcie którego nie muszę ponownie wprowadzać hasła. Ale mój koncert nie polega na marnowaniu dodatkowego czasu na fizyczne wpisanie hasła. Moim pomysłem było jednak wcale nie mieć do czynienia z hasłem, ponieważ zakładam, że:- Jeśli w ogóle muszę to zapamiętać, jest bardzo prawdopodobne, że jest za krótki, aby go zabezpieczyć lub ponownie wykorzystać
- Jeśli wygeneruję długie i unikalne hasło do mojego zdalnego konta, będę musiał je gdzieś przechowywać (lokalny program do zarządzania hasłami lub usługa w chmurze) i pobierać za każdym razem, gdy będę chciał z niego skorzystać
sudo
. Miałem nadzieję, że uda mi się tego uniknąć.
Tak więc z tym pytaniem chciałem lepiej zrozumieć ryzyko, zastrzeżenia i kompromisy jednej możliwej konfiguracji w stosunku do innych.
Kontynuacja 1
Wszystkie odpowiedzi mówią, że brak hasła sudo
jest niepewny, ponieważ pozwala na „łatwą” eskalację uprawnień, jeśli moje osobiste konto użytkownika zostanie naruszone. Rozumiem, że. Ale z drugiej strony, jeśli użyję hasła, ponosimy wszystkie klasyczne ryzyko związane z hasłami (zbyt krótki lub wspólny ciąg, powtarzany w różnych usługach itp.). Ale sądzę, że jeśli wyłączę uwierzytelnianie hasła /etc/ssh/sshd_config
, aby nadal mieć klucz do zalogowania, mogę użyć prostszego hasła, sudo
aby łatwiej było je wpisać? Czy to ważna strategia?
Kontynuacja 2
Jeśli mam również klucz do zalogowania się za root
pośrednictwem ssh, jeśli ktoś uzyska dostęp do mojego komputera i ukradnie moje klucze (choć nadal są chronione hasłem klucza systemu operacyjnego!), Równie dobrze może uzyskać bezpośredni dostęp do root
konta , omijając sudo
ścieżkę. Jakie powinny być zasady dostępu do root
konta?
/etc/passwd
przykład nologin, nie ustawiaj hasła, a następnie ustaw bez hasła w visudo. Jeśli to zrobisz, powinieneś również upewnić się, że ustawienie visudo jest przeznaczone tylko do tego, czego absolutnie potrzebuje to konto systemowe, tj. Zablokuj je do jedynych poleceń, jakie powinien kiedykolwiek uruchomić.