Skonfigurowałem .ssh / autoryzowane_klucze i jestem w stanie zalogować się przy użyciu nowego „użytkownika” przy użyciu klucza pub / private ... Dodałem również „użytkownika” do listy sudoers ... Problem, który mam teraz, to kiedy Próbuję wykonać polecenie sudo, coś takiego jak:
$ sudo cd /root
wyświetli monit o podanie hasła, które wpisuję, ale nie działa (używam ustawionego hasła klucza prywatnego)
Ponadto wyłączyłem hasło użytkownika za pomocą
$ passwd -l user
czego mi brakuje?
Gdzieś moje początkowe uwagi są źle rozumiane ...
Próbuję zahartować mój system ... ostatecznym celem jest użycie kluczy pub / private do logowania, a nie proste uwierzytelnianie hasłem. Nauczyłem się, jak to wszystko skonfigurować za pomocą pliku autoryzowanych_kluczy.
Ponadto ostatecznie zapobiegnę logowaniu się do serwera za pośrednictwem konta root. Ale zanim to zrobię, potrzebuję sudo do pracy dla drugiego użytkownika (użytkownika, z którym będę cały czas logował się do systemu).
W przypadku tego drugiego użytkownika chcę zapobiec regularnemu logowaniu się za pomocą hasła i wymuszać tylko logowanie do klucza publicznego / publicznego, jeśli nie zablokuję użytkownika za pomocą „passwd -l user ... to jeśli nie użyję klucza, nadal mogę dostać się na serwer za pomocą zwykłego hasła.
Ale co ważniejsze , muszę sprawić, aby sudo współpracowało z konfiguracją klucza publicznego / publicznego z użytkownikiem, którego hasło zostało wyłączone.
Edycja: OK, myślę, że mam (rozwiązanie):
1) Dostosowałem / etc / ssh / sshd_config i ustawiłem. PasswordAuthentication no
Zapobiegnie to logowaniu się za pomocą hasła ssh (pamiętaj, aby mieć działającą konfigurację klucza publicznego / prywatnego przed zrobieniem tego)
2) Poprawiłem listę sudoers visudo
i dodałem
root ALL=(ALL) ALL
dimas ALL=(ALL) NOPASSWD: ALL
3) root to jedyne konto użytkownika, które będzie miało hasło, testuję z dwoma kontami użytkownika „dimas” i „sherry”, które nie mają ustawionego hasła (hasła są puste, passwd -d user
)
Powyższe zasadniczo uniemożliwia wszystkim logowanie się do systemu za pomocą haseł (klucz publiczny / prywatny musi zostać skonfigurowany).
Dodatkowo użytkownicy na liście sudoers mają uprawnienia administratora. Mogą również korzystać su
z różnych kont. Więc w zasadzie „Dimas” może sudo su sherry
jednak „Dimas może NIE su sherry
. Podobnie żadnego użytkownika nie ma na liście sudoers nie można zrobić su user
lub sudo su user
.
UWAGA Powyższe działa, ale jest uważane za słabe bezpieczeństwo. Każdy skrypt, który może uzyskać dostęp do kodu jako użytkownik „dimas” lub „sherry”, będzie mógł wykonać sudo, aby uzyskać dostęp do roota. Błąd w ssh, który pozwala zdalnym użytkownikom zalogować się pomimo ustawień, zdalne wykonanie kodu w coś takiego jak Firefox lub inna wada, która pozwala na uruchomienie niechcianego kodu, ponieważ użytkownik będzie mógł teraz działać jako root. Sudo powinno zawsze wymagać hasła, możesz równie dobrze zalogować się jako root zamiast jakiegoś innego użytkownika.