Co to jest SSH - protokół, a co to ssh - narzędzie?

15

Co to jest SSH - protokół?
Co to jest ssh- narzędzie unix i jak to działa?

W jaki sposób protokół SSH jest powiązany z SFTP?

Co to jest sshd?

Czy polecenie suużywa sshlub sshd?

Srikanth
źródło
Pracuję na systemie Solaris i chociaż od dłuższego czasu używam poleceń ssh, sftp i su, nigdy nie do końca zrozumiałem, jak działają. Proszę wyjaśnić i skierować mnie w stronę dobrych zasobów, w których mogę dowiedzieć się więcej.
Srikanth,

Odpowiedzi:

26

Protokół SSH jest określony przez to, co akceptują programy sshi sshd. (Jest dla niego zdefiniowany standard, ale jest to kwestia po fakcie i jest najczęściej ignorowany, gdy jedna z implementacji dodaje nowe funkcje.) Ponieważ istnieje wiele implementacji tych (OpenSSH, F-Secure, PuTTY itp. ) czasami okazuje się, że jeden z nich nie obsługuje tego samego protokołu, co inne. Zasadniczo definiuje negocjację uwierzytelnienia i tworzenie multipleksowanego strumienia danych. Ten strumień może przenosić jeden lub więcej (z OpenSSH iControlMaster) sesje terminali i zero lub więcej tuneli (połączenia gniazd przesyłania dalej z lokalnego lub zdalnego na drugą stronę; przekazywanie X11 jest szczególnym przypadkiem zdalnego przesyłania). Definiuje także „podsystemy”, które można wykorzystywać w strumieniu; sesje terminalowe są podstawowym podsystemem, ale można zdefiniować inne. sftpjest jednym z nich.

sshnarzędzie korzysta z protokołu SSH, aby rozmawiać z sshdinnym komputerem. Jak to działa, zależy od wersji (patrz wyżej), ale jego sedno polega na tym, że próbuje dowiedzieć się, której wersji protokołu SSH użyć, a następnie sshdwynegocjować obsługiwane metody uwierzytelniania, a następnie próbuje uwierzytelnić się przy użyciu jedna z tych metod (w razie potrzeby prośba o hasło użytkownika zdalnego / hasło klucza prywatnego / frazę klucza S), a po udanym uwierzytelnieniu konfiguruje multipleksowany strumień z sshd.

sshd, jak wspomniano powyżej, implementuje stronę serwera protokołu SSH.

sftpjest (obecnie jedynym standardowym) podsystemem zdefiniowanym w większości sshdwdrożeń. Gdy żądany jest podsystem SFTP, sshdłączy sftp-serversię z sesją podsystemu; sftpProgram następnie mówi do niego, podobnie ftp, ale z transferu plików multipleksowany strumień zamiast korzystania z oddzielnych połączeń jak ftp.

sunie ma nic wspólnego z ssh, sshdlub sftp, z wyjątkiem przypadku, gdy nie mogą być moduły PAM zorganizować dla multipleksowany strumień będzie dostępna w skorupkach lub przebiegu programu przez nią.

geekozaur
źródło
Cholera, uderz mnie jeszcze raz. Niezwykle wyczerpująca odpowiedź - pozytywnie oceniany.
Shadur
9

SSH (skrót od „Secure SHell”) to protokół sieciowy opisany w RFC4251 . sshnarzędziem jest klient SSH, który łączy się z demonem SSH i przedstawia użytkownikowi „Bezpieczny SHell”. SFTP to protokół podobny do FTP, który działa przez połączenie SSH.

supolecenie nie używa sshani sshdw żaden sposób, po prostu pozwala uruchamiać procesy z różnymi uprawnieniami.

gelraen
źródło
6

SSH to protokół do bezpiecznej komunikacji w niezabezpieczonej sieci. Pozwala to na szyfrowanie od końca do końca całej komunikacji, tak że nie można (wykonalnie) przechwycić i wyczyścić.

Narzędzie ssh jest implementacją protokołu. SFTP to podsystem ssh, który używa protokołu do bezpiecznego hasła i przesyłania plików.

su nie używa protokołu ssh.


źródło
5

Spójrz na projekt OpenSSH . Ma wszystkie informacje, których szukasz.

W skrócie, protokół SSH pozwala na bezpieczne (szyfrowane) połączenie między dwoma hostami. sshNarzędzie to jest program kliencki do zalogowania się do systemu zdalnego przy użyciu protokołu SSH, a ona ma wiele innych zastosowań, też, jak [reverse] spedycja tunelowanie / port / ...

sshdto oprogramowanie serwera . Zapewnia demona, który odpowiada na przychodzące żądania SSH.

sunie ma nic wspólnego z ssh. Służy do zmiany aktywnego użytkownika (najczęstsze użycie, aby się zmienić root).

Pan Shunz
źródło