Онлайн-рабочие станции OnWorks Linux и Windows

Логотип

Бесплатный хостинг в Интернете для рабочих станций

<Предыдущая | Содержание: | Следующая>

SSH

Для решения этой проблемы был разработан новый протокол SSH (Secure Shell). SSH решает две основные проблемы безопасного взаимодействия с удаленным хостом. Во-первых, он удостоверяет, что удаленный хост является тем, кем он является (тем самым предотвращая так называемые атаки «человек посередине»), а во-вторых, он шифрует все коммуникации между локальным и удаленным хостами.

SSH состоит из двух частей. Сервер SSH работает на удаленном хосте, прослушивая входящие соединения на порту 22, в то время как клиент SSH используется в локальной системе для связи с удаленным сервером.

Большинство дистрибутивов Linux поставляют реализацию SSH под названием OpenSSH из проекта OpenBSD. Некоторые дистрибутивы по умолчанию включают как клиентские, так и серверные пакеты (например, Red Hat), в то время как другие (например, Ubuntu) предоставляют только клиентские пакеты. К


разрешить системе принимать удаленные подключения, она должна иметь символ OpenSSH-сервер пакет установлен, настроен и запущен, и (если система либо работает, либо находится за брандмауэром) он должен разрешать входящие сетевые соединения через TCP-порт 22.


изображение

Функции: Если у вас нет удаленной системы для подключения, но вы хотите попробовать эти примеры, убедитесь, что OpenSSH-сервер пакет установлен в вашей системе и используйте локальный как имя удаленного хоста. Таким образом, ваша машина будет создавать сетевые соединения сама с собой.


изображение

Клиентская программа SSH, используемая для подключения к удаленным SSH-серверам, называется, что вполне уместно, SSH. Чтобы подключиться к удаленному хосту с именем удаленная система, мы бы использовали SSH клиентская программа вроде так:



[я @ linuxbox ~] $ удаленная система ssh

Подлинность хоста remote-sys (192.168.1.4) не может быть установлена.

RSA key fingerprint is 41:ed:7a:df:23:19:bf:3c:a5:17:bc:61:b3:7f:d9:bb.

Вы действительно хотите продолжить подключение (да / нет)?

[я @ linuxbox ~] $ удаленная система ssh

Подлинность хоста remote-sys (192.168.1.4) не может быть установлена.

RSA key fingerprint is 41:ed:7a:df:23:19:bf:3c:a5:17:bc:61:b3:7f:d9:bb.

Вы действительно хотите продолжить подключение (да / нет)?


При первой попытке подключения отображается сообщение о том, что невозможно установить подлинность удаленного хоста. Это связано с тем, что клиентская программа никогда раньше не видела этот удаленный хост. Чтобы принять учетные данные удаленного хоста, при появлении запроса введите «да». После установления соединения пользователю предлагается ввести пароль:



Предупреждение: «remote-sys, 192.168.1.4» (RSA) постоянно добавлен в список известных хостов.

пароль me @ remote-sys:

Предупреждение: «remote-sys, 192.168.1.4» (RSA) постоянно добавлен в список известных хостов.

пароль me @ remote-sys:


После успешного ввода пароля мы получаем приглашение оболочки от удаленной системы:



Последний вход: 30 августа, 13:00:48, 2016 [me @ remote-sys ~] $

Последний вход: 30 августа, 13:00:48, 2016 [me @ remote-sys ~] $


Сеанс удаленной оболочки продолжается до тех пор, пока пользователь не войдет в выход в командной строке удаленной оболочки, закрывая тем самым удаленное соединение. На этом этапе локальный сеанс оболочки


возобновится, и снова появится приглашение локальной оболочки.

Также возможно подключиться к удаленным системам, используя другое имя пользователя. Например, если у локального пользователя «я» была учетная запись с именем «bob» в удаленной системе, пользователь me может войти в учетную запись зерно в удаленной системе следующим образом:


[я @ linuxbox ~] $ ssh bob @ удаленная система

пароль bob @ remote-sys:

Последний вход: Сб, 30 августа, 13:03:21 2016 [bob @ remote-sys ~] $

[я @ linuxbox ~] $ ssh bob @ удаленная система

пароль bob @ remote-sys:

Последний вход: Сб, 30 августа, 13:03:21 2016 [bob @ remote-sys ~] $


Как говорилось ранее, SSH проверяет подлинность удаленного хоста. Если удаленный хост не прошел успешную аутентификацию, появится следующее сообщение:



[я @ linuxbox ~] $ удаленная система ssh

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@

@ ВНИМАНИЕ: ИДЕНТИФИКАЦИЯ УДАЛЕННОГО ХОЗЯЙНА ИЗМЕНИЛАСЬ! @

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@ ВОЗМОЖНО, ЧТО КТО-ТО ДЕЛАЕТ ГРЕБНО!

Кто-то мог подслушивать вас прямо сейчас (атака «человек посередине»)!

Также возможно, что ключ хоста RSA только что был изменен. Отпечаток ключа RSA, отправленный удаленным хостом, - 41: ed: 7a: df: 23: 19: bf: 3c: a5: 17: bc: 61: b3: 7f: d9: bb.

Пожалуйста, обратитесь к системному администратору.

Добавьте правильный ключ хоста в /home/me/.ssh/known_hosts, чтобы избавиться от этого сообщения.

Оскорбительный ключ в /home/me/.ssh/known_hosts:1

Ключ хоста RSA для remote-sys изменился, и вы запросили строгую проверку.

Ошибка проверки ключа хоста.

[я @ linuxbox ~] $ удаленная система ssh

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@

@ ВНИМАНИЕ: ИДЕНТИФИКАЦИЯ УДАЛЕННОГО ХОЗЯЙНА ИЗМЕНИЛАСЬ! @

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@ ВОЗМОЖНО, ЧТО КТО-ТО ДЕЛАЕТ ГРЕБНО!

Кто-то мог подслушивать вас прямо сейчас (атака «человек посередине»)!

Также возможно, что ключ хоста RSA только что был изменен. Отпечаток ключа RSA, отправленный удаленным хостом, - 41: ed: 7a: df: 23: 19: bf: 3c: a5: 17: bc: 61: b3: 7f: d9: bb.

Пожалуйста, обратитесь к системному администратору.

Добавьте правильный ключ хоста в /home/me/.ssh/known_hosts, чтобы избавиться от этого сообщения.

Оскорбительный ключ в /home/me/.ssh/known_hosts:1

Ключ хоста RSA для remote-sys изменился, и вы запросили строгую проверку.

Ошибка проверки ключа хоста.


Это сообщение вызвано одной из двух возможных ситуаций. Во-первых, злоумышленник может попытаться осуществить атаку «человек посередине». Это редко, так как все знают, что SSH предупреждает об этом пользователя. Более вероятная причина в том, что удаленная система была каким-то образом изменена; например, была переустановлена ​​его операционная система или SSH-сервер. Однако в интересах безопасности не следует сразу отказываться от первой возможности. При появлении этого сообщения всегда уточняйте у администратора удаленной системы.

После того, как было определено, что сообщение возникло по доброкачественной причине, можно безопасно исправить проблему на стороне клиента. Это делается с помощью текстового редактора (напор возможно), чтобы удалить устаревший ключ из ~ / .ssh / known_hosts файл. В приведенном выше примере сообщения мы видим следующее:


Оскорбительный ключ в /home/me/.ssh/known_hosts:1

Оскорбительный ключ в /home/me/.ssh/known_hosts:1


Это означает, что первая строка известные_хосты файл содержит неправильный ключ. Удалите эту строку из файла, и SSH программа сможет принимать новые учетные данные для аутентификации от удаленной системы.

Помимо открытия сеанса оболочки в удаленной системе, SSH также позволяет нам выполнять одну команду в удаленной системе. Например, чтобы выполнить бесплатно команда на удаленном хосте с именем удаленная система и отображать результаты в локальной системе:


[я @ linuxbox ~] $ ssh remote-sys бесплатно

пароль меня @ twin4:

всего использовано бесплатно

общие

буферы

кэшируются

[я @ linuxbox ~] $ ssh remote-sys бесплатно

пароль меня @ twin4:

всего использовано бесплатно


Мем:

775536 507184 268352

0

110068

154596

Мем:


- / + буферы / кеш:

Обмен:

242520 533016

0 1572856

- / + буферы / кеш:

Обмен:


[я @ linuxbox ~] $

[я @ linuxbox ~] $


изображение

1572856

1572856

Можно использовать эту технику более интересными способами, например, в этом примере, в котором мы выполняем команду ls в удаленной системе и перенаправляем вывод в файл в локальной системе:



[я @ linuxbox ~] $ ssh remote-sys 'ls *'> dirlist.txt

пароль me @ twin4: [me @ linuxbox ~] $

[я @ linuxbox ~] $ ssh remote-sys 'ls *'> dirlist.txt

пароль me @ twin4: [me @ linuxbox ~] $


Обратите внимание на использование одинарных кавычек в приведенной выше команде. Это сделано потому, что мы не хотим, чтобы расширение имени пути выполнялось на локальном компьютере; скорее, мы хотим, чтобы это выполнялось в удаленной системе. Точно так же, если бы мы хотели, чтобы вывод перенаправлялся в файл на удаленном компьютере, мы могли бы поместить оператор перенаправления и имя файла в одинарные кавычки:



[я @ linuxbox ~] $ ssh remote-sys 'ls *> dirlist.txt'

[я @ linuxbox ~] $ ssh remote-sys 'ls *> dirlist.txt'


изображение

Туннелирование с помощью SSH

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

Возможно, наиболее распространенное использование этой функции - разрешить передачу системного трафика X Window. В системе, на которой работает X-сервер (то есть машина, отображающая графический интерфейс), можно запустить и запустить клиентскую программу X (графическое приложение) на удаленной системе, и ее дисплей появится в локальной системе. Это легко сделать; вот пример: допустим, мы сидим в системе Linux под названием линуксбокс на котором запущен X-сервер, и мы хотим запустить xload программа в удаленной системе с именем удаленная система и увидеть графический вывод программы в нашей локальной системе. Мы могли сделать это:

[я @ linuxbox ~] $ ssh -X удаленная система

пароль me @ remote-sys:

Последний вход: понедельник, 08 сентября, 13:23:11 2016 [me @ remote-sys ~] $ xload

После xload команда выполняется в удаленной системе, ее окно появляется в локальной системе. В некоторых системах для этого может потребоваться использовать параметр «-Y», а не параметр «-X».


Лучшие облачные вычисления для ОС в OnWorks: