Что такое SSH - протокол и что такое ssh - утилита?

15

Что такое SSH - протокол?
Что такое sshутилита unix и как она работает?

Как протокол SSH связан с SFTP?

Что такое sshd?

Команда suиспользует sshили sshd?

Srikanth
источник
Я работаю на Solaris и, хотя уже довольно давно использую команды ssh, sftp и su, я никогда полностью не понимал, как они работают. Пожалуйста, объясните и укажите мне несколько хороших ресурсов, где я могу узнать больше.
Срикант

Ответы:

26

Протокол SSH определяется тем, что принимают программы sshи sshd. (Существует определенный стандарт для него, но это постфактум и в большинстве случаев игнорируется, когда одна из реализаций добавляет новые функции.) Поскольку существует множество реализаций этих (OpenSSH, F-Secure, PuTTY и т. Д.). иногда вы обнаружите, что один из них не поддерживает тот же протокол, что и другие. По сути, он определяет согласование аутентификации и создание мультиплексированного потока данных. Этот поток может нести один или несколько (с OpenSSH иControlMaster) сеансы терминала и ноль или более туннелей (пересылка соединений сокетов с локальной или удаленной на другую сторону; пересылка X11 является частным случаем удаленной пересылки). Он также определяет «подсистемы», которые можно использовать в потоке; терминальные сеансы являются основной подсистемой, но другие могут быть определены. sftpявляется одним из них.

sshутилита использует протокол SSH для общения sshdна другом компьютере. Как это работает, зависит от того, какая это версия (см. Выше), но суть в том, что он пытается выяснить, какую версию протокола SSH использовать, затем он и sshdсогласовывает поддерживаемые методы аутентификации, затем он пытается аутентифицировать вас, используя один из этих методов (при необходимости запрашивая пароль удаленного пользователя / paasword закрытого ключа / фразу S-Key) и при успешной аутентификации устанавливает мультиплексированный поток с помощью sshd.

sshdКак сказано выше, реализует серверную часть протокола SSH.

sftpявляется (в настоящее время единственной стандартной) подсистемой, определенной в большинстве sshdреализаций. Когда запрашивается подсистема SFTP, sshdподключается sftp-serverк сеансу подсистемы; sftpто программа говорит с ним, аналогично , ftpно с передачей файлов , мультиплексированных на потоке вместо того чтобы использовать отдельные соединения , как с ftp.

suне имеет ничего общего с ssh, sshdили sftp, за исключением случаев, когда могут существовать модули PAM, обеспечивающие доступность мультиплексированного потока в оболочке или программе, запущенной им.

geekosaur
источник
Черт, побей меня снова. Приятный исчерпывающий ответ - проголосовал.
Шадур
9

SSH (расшифровывается как «Secure SHell») - это сетевой протокол, описанный в RFC4251 . sshУтилита - это клиент SSH, который подключается к демону SSH и представляет пользователю «Secure SHell». SFTP - это FTP-подобный протокол, который работает через SSH-соединение.

suКоманда не использует sshили sshdкаким-либо образом, она просто позволяет запускать процессы с разными привилегиями.

gelraen
источник
6

SSH - это протокол для безопасной связи по небезопасной сети. Он допускает сквозное шифрование всей связи, так что его невозможно (практически) перехватить и расшифровать.

Утилита ssh - это реализация протокола. SFTP - это подсистема ssh, которая использует протокол для безопасной передачи пароля и файла.

su не использует протокол ssh.


источник
5

Взгляните на проект OpenSSH . Он содержит всю информацию, которую вы ищете.

Вкратце, протокол SSH разрешает безопасное (зашифрованное) соединение между двумя хостами. sshУтилита является клиентская программа для входа в удаленную систему с помощью протокола SSH, и он имеет много других применений, тоже, как [обратное] туннелирование / перенаправление портов / ...

sshdэто серверное программное обеспечение. Он предоставляет демон, который отвечает на входящие запросы SSH.

suне имеет ничего общего с SSH. Он используется для смены активного пользователя (чаще всего он становится root).

Мистер Шунц
источник