Cześć, sprawa wygląda następująco: planuję zrobić tunel do serwera za pośrednictwem ssh w możliwie jak najprostszy sposób, tak żeby klient łączył się z automatu przez OpenSSH za pośrednictwem usługi w Windowsie albo przez plik .bat uruchamiany automatycznie po zalogowaniu klienta. Jako że OpenSSH nie pozwala na umieszczenie hasła bezpośrednio w parametrach, myślałem o logowaniu za pośrednictwem klucza i wyłączeniu logowania za pomocą hasła, wtedy taka usługa startująca z automatu od razu łączyłaby się z serwerem i umożliwiła np. odpalenie pulpitu zdalnego na serwerze.
Pytanie jest takie: czy koniecznie muszę za każdym razem generować klucz na komputerze klienta a następnie wgrywać pubkey na serwer, czy mogę wygenerować na serwerze np. kilka kluczy i instalować je na klientach razem z usługą/plikiem .bat? Jeśli tak, to w jaki sposób instaluje się taki klucz? Sam serwer SSH potrafię skonfigurować ale nie korzystałem jeszcze z logowania za pomocą klucza.
Pamiętaj tylko żeby zmienić domyślny port SSH w celu odsiania 99% automatycznych ataków na Twój serwer.
Z klienta możesz się logować przy pomocy dowolnego klucza, także generowanego gdziekolwiek - tylko musisz klucz publiczny trzymać na serwerze (logujesz się przy pomocy klucza prywatnego, tu o nazwie pliku id_rsa, klucz nie może być zabezpieczony hasłem):
Zmiana portu nie ma być elementem bezpieczeństwa tylko oczyścić logi auth serwera z nawału botów dzięki czemu da się zobaczyć potencjalne problemy szybciej.
Ale łatwiej przekopiowac formulke z internetu niż przemyśleć samodzielnie
Oczywiście wiesz, że poziom logowania można konfigurować a i sam demon logowania może filtorwać wpisy?
Ale lepiej dać kiepską poradę zamiast uzyskać efekt właściwą metodą.
BTW. Generowanie par kluczy na serwerze też uznałbym za złą praktykę ponieważ klucz prywatny powinien być szczególnie chroniony i nigdy nie dostać się w niepowołane ręce. Jak już koniecznie musisz go generować na serwerze (dlaczego? lenistwo? lenistwo nigdy nie może być uznanym powodem) to powinieneś zadbać o bezpieczny kanał, którym prześlesz go na maszynę kliencką.
W takim razie chciałbym widzieć niepoprawne logowania od moich użytkowników, a nie widzieć logowań od botów. Jak to ustawić? Bardzo chętnie nauczę się czegoś nowego
Odnośnie generowania kluczy na serwerze - w zastosowaniu użytkownika osobiście nie widzę problemu. Klucz pozwala na utworzenie tunelu do serwera, więc sam serwer jest prawdę mówiąc bardziej cenny niż klucz kliencki - użyty tylko i wyłącznie do tego logowania. Ja rozumiem, że są dobre praktyki - ale jest też coś takiego jak analiza ryzyka Warto mieć to na uwadze.
Każda metoda, która przynosi spodziewany rezultat jest właściwa. Ty powiesz lenistwo, ja powiem wygoda. Poza tym praktycznie nie ma możliwości dostania się kluczy w niepowołane ręce, tak jak kolega powyżej napisał - analiza ryzyka.
To jest argument klasy “potrzymaj mi piwo”. Rzeczy można robić dobrze lub źle. I nie, nie każda metoda dająca spodziewany rezultat jest dobra. To co dzieje się po drodze ma znaczenie i może mieć opłakane skutki, o których nie myślisz albo nawet nie wiesz. Nie należy tolerować lenistwa i robienia bokami. Jak coś robisz, rób to dobrze.
Bardzo prosto. Oczywiście trzeba zrobić filtr, w który będą się łapać Twoi użytkownicy (których loginy znasz) a reszta nie. Naprawdę sam na to nie wpadłeś?
Nie no, jasne, ale trzeba ten filtr utrzymywać. Czyli z każdym dodanym użytkownikiem musimy też zaktualizować filtr logu. Czyli dokładamy sobie roboty, zwiększamy ryzyko pomyłki - wszystko dlatego, że zmiana portu nie poprawia bezpieczeństwa nie sądzisz, że to brzmi zupełnie niepotrzebnie?