- SSH — безопасное использование удаленного компьютера и копирование данных
- Контент
- Что такое SSH и для чего он используется?
- Установка соединения между операционными системами
- ЛИНУКС
- Установка и запуск SSH-сервера в Linux
- Безопасность, изменение порта SSH
- ОКНА
- Развертывание
- Связи между системами: Windows, Linux и др.
- OpenSSH: Linux ↔ Linux
- Windows → Linux
- Безопасная передача файлов: SCP
- SCP и копирование из Windows
- Измерение скорости
- Доступность Интернета
- Карта скорости Интернета
SSH — безопасное использование удаленного компьютера и копирование данных
Аббревиатура SSH происходит от английской фразы Secure Shell. Это безопасная (зашифрованная) связь между двумя компьютерами. Мы будем использовать SSH, если, например, хотим удаленно управлять компьютером (для которого у нас есть данные для входа) или, возможно, просто передавать файлы.
SSH как безопасный протокол связи был создан в ответ на плохо защищенные (даже откровенно опасные) протоколы и связанные с ними службы типа Telnet.
В самой простой форме, с SSH, удаленный компьютер управляется только через командную строку (терминал, консоль). Однако позже мы покажем, что благодаря туннелю SSH мы также можем управлять удаленным рабочим столом, а значит, и графическим интерфейсом системы, включая программы.
Контент
Что такое SSH и для чего он используется?
SSH-управление через терминал отлично подходит, например, для управления удаленным компьютером, копирования и передачи файлов (SCP, см. ниже) или, возможно, для использования некоторых программ, не требующих работы с графическим интерфейсом (ученые и техники могут оценить возможность гораздо большего количества вычислений на удаленном сервере, к которому у них нет доступа в данный момент).
Использование SSH очень широкое — давайте упомянем администрирование сервера, настройку VPN (виртуальную частную сеть), перенаправление портов TCP и X11 или просмотр веб-страниц через прокси с шифрованием. Сетевое туннелирование делает этот канал связи очень безопасным для этих целей.
Конечно, эти функции также оценят индивидуальные/домашние пользователи, которые могут удаленно управлять своим компьютером или безопасно копировать данные между компьютерами с помощью SSH.
Установка соединения между операционными системами
SSH чаще всего используется между Unix и Unix-подобными системами, особенно между двумя Linux-машинами. Однако это не означает, что пользователи Windowsлишены реализации SSH: вы можете очень легко подключиться к этим системам, на которых работает SSH-сервер, из Windows, например, с помощью бесплатной (и с открытым исходным кодом) программы WinSCP (она в основном используется для передачи файлов через SSH/SCP или FTP и SFTP) и другие (об этом позже). Также можно запустить сам SSH-сервер в Windows.
Теперь давайте сосредоточимся на конкретных случаях и конкретных операционных системах.
ЛИНУКС
Установка и запуск SSH-сервера в Linux
Давайте сосредоточимся на двух очень популярных операционных системах Linux: openSUSE и Ubuntu (и производных). В openSUSE сервер SSH уже установлен после установки самой системы. В Ubuntu нам (вероятно) нужно его установить — либо с помощью диспетчера программ, либо быстрее через терминал, введя команду
$sudo apt-get install openssh-server
После установки сервер должен запуститься автоматически, а если нет, то запускаем его вводом команды
Запуск службы $sudo по ssh
В openSUSE нам не нужно устанавливать или запускать сервер вручную (демон SSHD обычно уже запущен), но нам нужно открыть соответствующий порт в брандмауэре (из соображений безопасности мы можем выбрать порт кроме стандартного порта 22, см. ниже), и мы де-факто закончили.
Если демон SSHD не запущен, откройте систему администрирования Yast, затем пункт «Система» и нажмите «Запустить редактор уровней». Находим в списке данный сервис (SSHD) и запускаем его. Или мы можем использовать команду
$su
# запуск службы sshd
Yast в текстовом режиме (консоль). Если мы используем нестандартный порт, мы открываем его в опции «Дополнительно».
Безопасность, изменение порта SSH
В целях безопасности рекомендуется изменить порт по умолчанию, а также использовать более надежный пароль для входа в систему. Это связано с тем, что стандартные порты, такие как 22, используемый SSH,частых атак методом перебора — и если вы используете слабый пароль, система может быть атакована удаленно таким образом, или связь перехвачена.
Ваш пароль должен содержать не менее 12 символов, состоять как из прописных, так и строчных букв (как минимум одна), как минимум из одной цифры и специального символа (пробелы, $,_, # и т. д.).
Мы изменим порт для SSH-сервера следующим образом:
С помощью популярного редактора (vim, nano, . ) откройте конфигурационный файл sshd_config (ниже редактор nano используется в режиме администратора, но вы также можете использовать графические редакторы)
$ su
# nano /etc/ssh/sshd_config
или в Ubuntu мы используем команду
$ sudo nano /etc/ssh/sshd_config
Раскомментируйте строку #Port 22 (удалите «#») и измените номер порта. Однако в то же время мы должны убедиться, что выбранный новый порт уже не используется каким-либо процессом. Узнать это можно несколькими способами — например, команда
дает четкий результат
Если вам нужна информация только о соответствующем порте (здесь мы выбираем 53033, но выбор за вами) и о том, используется ли он процессом, введите
# netstat -ltnupаналогичные системы с командой
# systemctl перезагрузить sshd.service
# перезапуск службы sshd
(Вместо перезагрузки вы можете использовать остановку, а затем запустить.)
В Ubuntu перезапускаем сервис командой
$ sudo service ssh reload
ОКНА
В Windows мы можем настроить SSH-сервер с помощью сторонних приложений: некоторые из них бесплатны и имеют открытый исходный код, другие платные и обычно бесплатны для домашнего и некоммерческого использования.
Их настройки в целом такие же, как мы описали в случае с сервером SSH в Linux: с той разницей, что заданные настройки можно «кликнуть» или записать в поля в приложении.
Из самых известных SSH-серверов для Windows он упоминает FreeSSHd , который является абсолютно бесплатным. Он предлагает простое управление и понятные настройки (отметим, что он использует ActiveX). После установки необходимо включить эту службу и порт на брандмауэре Windows (брандмауэр должен автоматически оповещать об этой службе).
Загрузить: FreeSSHd
С помощью FreeSSHd можно включать и контролировать даже сам Telnet, администратор также может запускать и останавливать SSH-сервер одним щелчком мыши (работает в облегченном CygWin). Можно добавлять новых пользователей и авторизовать их либо через ядро NT (учетная запись Windows), либо с помощью созданного пароля (сохраненного в виде хэша SHA1), а также открытого ключа (только для SSH).
Также разумно изменить порт по умолчанию для SSH-сервера из диапазона, который мы обсуждали выше. Вместе с SSH-сервером пользователь также получает опцию SFTP (см. ниже), что обеспечивает безопасную передачу файлов по зашифрованному FTP-каналу.
Отличной программой является Bitvise SSH Server . Это бесплатно только для некоммерческого использования, в противном случае лицензия на коммерческую среду стоит 100 долларов США за установку: корпоративные цены варьируются от 10 000 долларов США (в помещении) до международных развертываний от 25 000 долларов США до40 000 долларов каждый.
Из других SSH-серверов для Windows он называет следующее:
- Kpym Telnet/SSH-сервер (с открытым исходным кодом, бесплатно)
- CopSSH (бесплатно для некоммерческого использования)
Развертывание
Для входа на компьютер с SSH-сервером необходимо знать его IP-адрес (или имя). Теперь у нас есть практически три возможных варианта:
- SSH-сервер работает на удаленном компьютере в Интернете с общедоступным IP-адресом.
- Сервер SSH работает на компьютере в локальной сети (LAN).
- SSH-сервер работает на удаленном компьютере в Интернете с закрытым IP-адресом или находится за NAT.
Если компьютер не закрыт в локальной сети (спрятан за другим NAT и частным IP-адресом), а подключен напрямую к Интернету с общедоступным IP-адресом, мы получаем доступ к нему с помощью одной команды:
где IP_Adresa_Pocitace — это, разумеется, IP-адрес компьютера, на который мы логинимся удаленно (то есть того, на котором работает SSH-сервер).
Если все в порядке, появится информация о сгенерированном ключе, который будет шифровать общение, мы его принимаем, вводим пароль и мы в системе.
Однако, если мы изменили порт для SSH (выше мы выбрали порт 53033), мы должны указать его при входе в удаленную систему:
$ssh -p 53033 имя@IP_Address_Count
Та же процедура применяется в случае удаленного входа на компьютер с работающим SSH-сервером в локальной сети (дома, на работе и т. д.)
Однако в этом случае нам необходимо выяснить локальные IP-адреса рассматриваемых машин (с SSH-серверами). На таком компьютере (если их больше, то на всех) вводим команду:
Это даст нам информацию о локальных сетевых интерфейсах. В выводе находим сетевую карту, которую используем для подключения. Его локальный IP-адрес (inet.addr.)
также указан в одной строке.
Затем мы подключимся к этой машинеточно так же, как и в случае выше — если имя пользователя «user» и компьютер имеет локальный IP-адрес, например, 192.168.1.10 и если мы открываем порт 53033 для SSH, введите:
$ssh -p 53033 пользователь@192.168.1.10
Конечно, нельзя забывать, что пользователь user должен действительно быть пользователем данного удаленного компьютера (если у него нет на нем учетной записи, то по логике он не войдет на него).
По понятным причинам также рекомендуется установить сетевой элемент, который назначает IP-адреса компьютерам в локальной сети, например, маршрутизатор, чтобы IP-адреса всегда оставались присвоенными рассматриваемым компьютерам (чтобы срок их действия не истекает).
Чуть более сложной (на первый взгляд) является ситуация, когда удаленный компьютер, на который мы хотим войти, скрыт за NAT — когда на пути SSH-соединения стоит, например, домашний/служебный маршрутизатор или когда общедоступный IP-адрес используется совместно с другими компьютерами в сети локального интернет-провайдера (что на самом деле является идентичными ситуациями с тонкими нюансами — от этого также зависит решение с использованием обратного SSH-туннеля).
Если, например, в пути SSH есть только домашний маршрутизатор, а у нас есть публичный IP-адрес (в глобальной сети), мы можем решить ситуацию, просто пробросив порт на данном маршрутизаторе на компьютер с SSH-сервер. (Процедура зависит от типа роутера. Это просто означает, что на роутере в соответствующем разделе выставлена проброска порта — 22, или вашего собственного порта на локальный IP-адрес компьютера с запущенным SSH-сервером).
Но если у нас нет доступа к маршрутизатору или другому сетевому устройству (например, в компании/офисе), мы должны прибегнуть к другому решению. Это то же самое, как если бы у нас было подключение дома с общим IP-адресом (у нас нет собственного IP-адреса от провайдера, больше мы переходим под публичный).
Решение состоит в так называемом обратном SSH-туннеле, которому посвящен отдельный текст: SSH-подключение к компьютеру за NAT илиМы строим обратный туннель.
Связи между системами: Windows, Linux и др.
OpenSSH: Linux ↔ Linux
OpenSSH — наиболее распространенная реализация протокола SSH в Unix и Unix-подобных системах. Что касается отношения сервер-клиент для двух Linux-машин, практически все, что нужно для начала, уже сказано выше.
Если мы не хотим использовать терминал для управления удаленным сервером с сервисом SSH и если нам нужно только передавать данные между компьютерами, мы уже можем использовать графический интерфейс.
В любом файловом менеджере мы можем использовать протокол SSH (или протокол FISH — Files Transfered over Shell Protocol), который дает нам доступ к списку папок в графической форме. Затем файлы можно создавать, удалять, перемещать и т. д., как если бы они находились на жестком диске. Это особенно оценят менее опытные пользователи или те, кто плохо работает в терминале.
Вы можете подключиться к удаленной учетной записи таким образом, например, из «системных» файловых менеджеров, таких как Dolphin (KDE), Nautilus (GNOME), а также из популярных программ Krusader, Filezilla, Midnight Commander и многих других. .
Windows → Linux
Очень популярное приложение Putty используется для подключения из среды Windows к машине Linux (или другой Unix-подобной системе с SSH-сервером). Это полностью бесплатно и с открытым исходным кодом. Это не только клиент для SSH и Telnet, но также SCP или SFTP.
Другим популярным клиентом для SSH является Tunnelier (клиент Bitvise SSH). Он доступен бесплатно для некоммерческого использования.
Безопасная передача файлов: SCP
SCP расшифровывается как «Secure Copy» — он использует SSH для шифрования передачи данных. Многие пользователи предпочитают его, хотя он и не предоставляет такой большой функциональности, как SFTP. Тем не менее, кто не хочет настраивать и управлять сервером (S)FTP, рекомендуется использовать протокол SCP.подходящее решение.
Копируем данные с клиентского компьютера (файл) на компьютер с работающим SSH-сервером с помощью команды:
$scp file user@ssh-server:/path-to-copy
Вместо ssh-сервера может быть IP удаленного компьютера или его имя. Конкретно: Предположим, что мы копируем между двумя системами Linux (или вообще Unix): из папки Documents на локальном компьютере мы хотим отправить файл table.ods на удаленный сервер с IP-адресом 192.168.1.10, точнее в каталог отчетов, в то время как этот каталог находится в профиле пользователя в каталоге сообщений. Вводим:
$scp Documents/table.ods uzivatel@192.168.1.10:/home/uzivatel/Zpravy/reporty/
Мы также можем копировать данные в другом направлении, т.е. с удаленного сервера на локальный компьютер:
$scp uzivatel@192.168.1.10:/home/uzivatel/Zpravy/reporty/tabulka.ods локальный адрес
В этом случае файл tabulka.ods копируется с удаленного сервера на наш (локальный) компьютер (в каталог local-adresar).
Если мы копируем весь каталог, мы должны использовать параметр -r (рекурсивное копирование). Кроме того, если удаленный SSH-сервер использует порт, отличный от стандартного 22, мы должны сообщить приложению через -P .
Иллюстративно: Теперь мы хотим загрузить каталог сообщений на удаленный компьютер, на котором SSH-сервер использует порт 53033. Пишем в терминале:
$scp -P 53033 -r сообщения user@192.168.1.10:/home/user/Documents
SCP и копирование из Windows
Помимо терминала, включенного в SSH-клиенты в Windows (см. выше), существует также графическое дополнение для SCP, а именно WinSCP, который является очень популярным клиентом с приятным и знакомым графическим интерфейсом. Работать с ним просто, как и с любым аналогичным файловым менеджером. в дополнение к SCP, он также поддерживает SFTP/FTPWinSCP совершенно бесплатен.
Измерение скорости
Измерьте скорость своего интернета и сравните ее со скоростью вашего окружения
Доступность Интернета
Проверьте наличие интернета и телевидения по вашему адресу
Карта скорости Интернета
Проверьте результаты в нашем мобильном приложении