Что такое SSH?

SSH (англ. Secure SHell - «безопасная оболочка») - сетевой протокол сеансового уровня, позволяющий производить удалённое управление операционной системой и туннелирование TCP-соединений (например, для передачи файлов). Сходен по функциональности с протоколами Telnet и rlogin, но, в отличие от них, шифрует весь трафик, включая и передаваемые пароли.

Вобщем, самый безопасный (ну или один из..) инструмент для удалённого доступа на ip и web. Для чего он нужен? Допустим, нужно как-то добраться до данных на серваке, даже если с вашего ip туда заблокировано доступ.

Программы для работы с SSH

Файловые команды

ls — список файлов и каталогов
ls -al — форматированный список со скрытыми каталогами и файлами
cd dir — сменить директорию на dir
cd — сменить на домашний каталог
pwd — показать текущий каталог
mkdir dir — создать каталог dir
rm file — удалить file
rm -r dir — удалить каталог dir
rm -f file — удалить форсированно file
rm -rf dir — удалить форсированно каталог dir *
cp file1 file2 — скопировать file1 в file2
cp -r dir1 dir2 — скопировать dir1 в dir2; создаст каталог dir2, если он не существует
mv file1 file2 — переименовать или переместить file1 в file2. если file2 существующий каталог — переместить file1 в каталог file2
ln -s file link — создать символическую ссылку link к файлу file
touch file — создать file
cat > file — направить стандартный ввод в file
more file — вывести содержимое file
head file — вывести первые 10 строк file
tail file — вывести последние 10 строк file
tail -f file — вывести содержимое file по мере роста, начинает с последних 10 строк
view file — вывести файл на экран

PS В одном из ближайших постов расскажу, что меня вообще столкнуло с SSH)

В этой статье мы рассмотрим современные и удобные способы работы с сервером по SSH с VPS от Infobox и облаком .

Мы расскажем не только про обычный способ подключения, но и про организацию устойчивого соединения через нестабильный интернет (например 3G модемы), а также о дополнительных утилитах, помогающих в работе по SSH.

Если вы пользователь Windows и вам нужно просто и быстро подключиться к Linux–серверу - переходите в раздел «Putty или как быстро подключиться к SSH из Windows».

Что необходимо знать для подключения по SSH

Для подключение необходимы:
  • IP адрес сервера
  • логин
  • пароль
Где взять данные для подключения к серверу VPS NG от Infobox
После заказа услуги войдите в панель управления https://panel.infobox.ru .
Выберите услугу «VPS NG» в правом верхнем углу панели управления в выпадающем списке.
Затем перейдите во вкладку «VPS».

В этом разделе вы увидите ip-адрес сервера и можете установить пароль для доступа к серверу .


Для подключения используйте имя пользователя root , ip–адрес с этой страницы и установленный пароль .
Если вы забыли пароль, нажмите на пункт «Редактировать параметры доступа», показанном на скриншоте выше.

Где взять данные для подключения к серверу VPS от Infobox
Войдите в панель управления https://panel.infobox.ru .
Выберите услугу VPS в правом верхнем углу панели управления в выпадающем списке (в названии услуга содержит имя заказанной ОС и регион размещения).

Затем перейдите во вкладку «Управление VPS».


Используйте имя пользователя root , пароль и ip–адрес сервера с этой страницы.

Где взять данные для подключения к серверу InfoboxCloud
После создания сервера данные для подключения придут к вам на электронную почту. Этого достаточно для подключения.

Если вы потеряли письмо с данными для доступа и хотите получить доступ к серверу
По-умолчанию логин администратора сервера: root

Войдите в панель управления по адресу: https://panel.infobox.ru .
Выберите услугу «Облачные серверы» в правом верхнем углу панели управления в выпадающем списке.

Выделенный IP–адрес для сервера можно посмотреть во вкладке «Облачная инфраструктура» панели управления.

Если поле "Выделенный IP адрес " пустое, значит при создании сервера вы не добавили серверу хотя бы 1 выделенный ip–адрес (и следовательно доступа через Интернет к серверу нет, есть только из локальной сети).

Чтобы добавить выделенный IP–адрес, нажмите на имя сервера.

В группе настроек «Сеть» нажмите «Настроить».


Убедитесь, что пропускная способность (скорость) сети достаточна (или поставьте больше при необходимости).
Затем нажмите «Добавить IPv4–адрес» и нажмите «Сохранить изменения».


Теперь у сервера есть выделенный IP–адрес.


Для изменения пароля доступа к серверу нажмите «Изменить», как показано на скриншоте выше. Так вы можете установить пароль для доступа к серверу.
Теперь вы знаете ip–адрес сервера , логин (root ) и пароль .

Настройка SSH–клиентов

Для Windows
Для подключения к серверу вам потребуется SSH–клиент. Если необходимо быстро подключиться - рекомендуется Putty . Если требуется работа с unix–утилитами, такими как scp, rsync и ssh-copy-id – используйте Cygwin .
Putty или как быстро подключиться к SSH из Windows
Скачайте инсталлятор Putty для Windows из раздела The latest release version и установите Putty с настройками по-умолчанию.


Запустите Putty (Пуск -> Все приложения -> PuTTY -> PuTTY).

Введите IP–адрес сервера. Убедитесь, что выбран порт 22, а тип подключения SSH и нажмите «Open».


Вам будет задан вопрос, доверяете ли вы серверу, к которому подключаетесь. Нужно ответить «Да».


Откроется окно подключения. В качестве логина используйте root, в качестве пароля - ваш пароль от сервера. Пароль можно вставить из буфера обмена правой кнопкой мыши. Он не отображается при вводе и вставке в целях безопасности.


Подключение было успешно установлено.

Cygwin или Unix–окружение на вашем Windows компьютере
Работая с Linux–серверами вам может понадобиться подобное окружение на вашем компьютере. Использовать единый набор утилит на сервере и рабочем компьютере очень удобно, поэтому обязательно попробуйте Cygwin. Linux только с первого взгляда кажется сложным. Постепенно осваивая эту ОС вы все больше будете нуждаться в Cygwin. Хорошее затягивает.

Нестабильное интернет-соединение при подключении по SSH – что делать?

Часто, работая через нестабильную сеть (например через мобильный интернет 3G/4G или различные точки доступа WiFi) соединение с SSH обрывается. Давайте посмотрим, что можно сделать на уровне клиента, чтобы предотвратить необходимость переподключения. Данные инструменты не подходят для выполнения критически важных операций на сервере (например апгрейд ОС). Для выполнения критически важных операций нужно дополнительно использовать утилиты, описанные в следующем разделе статьи. Предназначение утилит в этом разделе - более удобная работа по SSH для пользователя.
AutoSSH
AutoSSH запускает копию ssh–клиента и осуществляет мониторинг за соединением, перезапуская ssh–клиент при необходимости.

Autossh использует ssh для построения петли ssh–перенаправлений (соединение с локального компьютера на удаленный и в обратном направлении) и пересылает тестовые данные, ожидая, что они вернутся назад. Также поддерживается использование удаленного эхо-сервиса для отправки назад тестовых данных.

AutoSSH поддерживает только 3 параметра:

  • -M <порт>[: эхо-порт] - используется для указания порта мониторинга или порта мониторинга и порта эхо-сервиса. Если не указан порт эхо-сервиса, для него используется следующий по номеру порт. Например, если установлен флаг -M 20000, тестовые данные будут отправляться по порту 20000, а получаться по порту 20001. Если указать -M 0 – мониторинг соединения будет отключен и autossh будет перезапускать ssh только при выходе из ssh (можно использовать это с опциями ServerAliveInterval и ServerAliveCountMax в OpenSSH, если мониторинг в вашей ситуации не может быть использован);
  • -f - отправляет autossh в фон еще до запуска ssh (пароль в таком режиме ввести вы не сможете);
  • -V - отображает версию autossh.
Все остальные аргументы передаются как параметры ssh.

Для того, чтобы при восстановления соединения вам не пришлось вводить пароль повторно, разрешите для данного пользователя вход на сервер по ключу, как показано в разделе выше.

Установка AutoSSH в Cygwin в Windows
При использовании Cygwin в Windows введите:
apt-cyg update
apt-cyg install autossh


Теперь можно выполнить подключение к серверу:
autossh -M 20000 root@ip_адрес_сервера


Соединение успешно установлено.

В целом autossh – достаточно удобный инструмент для работы через нестабильные интернет-соединения и для организации ssh–туннелей на сервере (этот сценарий мы рассмотрим в отдельной статье). Недостаток autossh в том, что эта утилита не решает проблему, если в момент ввода команд на сети возникают значительные задержки (что в 3G сети случается). В этом случае вы будете ждать ответа от сервера на ввод каждого символа, что несколько замедляет работу. Тем не менее в обычных условиях работы autossh очень помогает поддерживать ssh–соединение.

Возможность вводить команды не дожидаясь ответа сервера решает Mosh , но совместимость этой утилиты пока сильно ограничена, а надежность невысока, поэтому пока использовать ее не рекомендуется.

Как выполнять критически важные и длительные операции на сервере: терминальные мультиплексоры

Если вы обновляете ОС, устанавливаете какое-то ПО или просто редактируете файл на сервере, после подключения через ssh или autossh не работайте напрямую. Если соединение по SSH будет разорвано - вы потеряете сессию, запущенную при подключении по SSH. Чтобы этого не произошло и при переподключении по SSH вы точно попали в продолжающуюся операцию на сервере или в открытое окно редактирования файла с того же момента, используйте на сервере терминальные мультиплексоры: GNU Screen или tmux .
GNU Screen
Изначально программа screen создавалась, чтобы запускать несколько терминальных сессий внутри одного терминала. Однако есть у screen и другое полезное свойство: возможность отсоединять виртуальные сеансы от физического терминала и подсоединять к другому. Это, в частности, позволяет запускать долгоиграющие процессы на удалённых машинах, без необходимости быть постоянно на них залогиненным.

1. Зайдите на удаленный сервер по SSH.
2. Запустите там screen
3. Вы увидите приветствие, нажмите Enter.
4. Теперь вы можете делать что угодно, как будто вы просто подключены к серверу по SSH (например запустите любой долгий процесс).
5. Вы можете отсоединить сессию, нажав CTRL + a, затем d. Можете даже завершить подключение по SSH к серверу.
6. Чтобы вернуться в сессию, переподключитесь по SSH (или это сделает autossh) и введите screen -r
Вы вернетесь в запущенную сессию, а в ней продолжается запущенный вами процесс ранее. Более подробно терминальные мультиплексоры мы разберем в последующих статьях.

Заключение

В этой статье мы попытались рассказать основы, необходимые для удобной работы по SSH из различных ОС. Конечно это далеко не все, что возможно, но хорошая база для начала. Если вы нашли ошибку в статье, считаете, что нужно добавить что-то важное или просто у вас есть вопрос -

Данная статья посвящена настройкам удаленного доступа к Ubuntu Server. Принцип подключения очень прост: на стороне клиента мы используем программу для удаленного доступа (например, Putty), на стороне сервера устанавливаем и настраиваем пакет OpenSSH. При подключении клиент проходит процедуру авторизации у сервера и между ними устанавливается зашифрованное соединение. Более подробно принцип работы протокола SSH рассматривался в статье по .

Схема сети представлена ниже. Удаленное подключение к серверу будет производиться с компьютера client.

В мы установили Ubuntu Server на чистый жесткий диск. После установки необходимо настроить сетевой интерфейс сервера для выхода в сеть. А, именно, задать Ip-адрес, маску сети, шлюз по-умолчанию. Если у вас интерфейс уже настроен — можете этот шаг пропустить. Настройки сетевых интерфейсов задаются в файле /etc/network/interfaces . Для редактирования воспользуемся текстовым редактором nano .

Попадаем в режим редактирования файла interfaces. Нас тут интересует все, что ниже # The primary network interface. В данный момент сервер получает IP-адрес по DHCP, что не совсем правильно. Сервер должен иметь статический IP, чтобы все узлы в сети точно знали его адрес. Пропишем сетевые настройки вручную.

Мой сервер находится в локальной подсети 192.168.1.0/24. Серверу назначен IP 192.168.1.2, маска 255.255.255.0, шлюз по-умолчанию 192.168.1.1, адрес DNS-сервера 192.168.0.1

Для сохранения файла нажимаем клавиши Ctrl + X —> Y —> Enter. Чтобы применить настройки необходимо перезапустить процесс network. Также можно просто перезагрузить сервер командой sudo reboot.

Проверяем (команда ifconfig -a ) — настройки применились

Все готово для OpesnSS, который можно установить из терминала командами

$ sudo apt-get install openssh-client

$ sudo apt-get install openssh-server

Управлять запуском, остановкой и перезапуском SSH-сервера можно с помощью команд

$ sudo service ssh stop | start | restart

По сути доступ по SSH на сервер уже есть. Но для более тонкой настройки существует конфигурационный файл по адресу /etc/ssh/sshd_config. Доступ к конфигам осуществляется только из под рута.

На стороне клиента скачиваем любую программу для подключения по SSH, я рекомендую Putty . В программе останется лишь ввести Ip-адрес сервера и подключиться к нему. При подключении вводим имя и пароль пользователя.

___________________________

SSH является технологией, предназначенной для удаленного исполнения команд, а также для входа через сеть на другой компьютер. Используя SSH можно загружать и копировать файлы между компьютерами, но чаще всего она используется для безопасной передачи файлов сайта между вашим компьютером и сервером хостинг-провайдера.

Secure Shell - так расшифровывается аббревиатура SSH. Благодаря использованию этой технологии достигается надежная авторизация и безопасная передача информации по открытым каналам связи. SSH успешно заменяет такие протоколы, как telnet, rlogin, rcp и rsh. Т.к. применение перечисленных технологий связано с некоторыми проблемами безопасности:

  1. Передача данных по сети осуществляется в открытом виде, поэтому любой пользователь компьютера, подключенного к этой сети, может перехватить эти данные. Проблема безопасности усугубляется еще и тем, что пароли также передаются в открытом (незашифрованном) виде.
  2. Также авторизация с использованием IP-адресов (rlogin) и паролей (telnet и FTP) весьма уязвима с точки зрения безопасности. SSH отлично справляется с перечисленными выше задачами. Даже учитывая то, что вход в другой компьютер осуществляется с помощью введения пароля. Этот пароль не может быть перехвачен, так как его передача осуществляется в зашифрованном виде.

Принцип работы SSH

Чтобы более четко понять, как работает SSH, нам поможет наглядный пример. Для этого мы будем использовать аналогию на примере всем известного Штирлица.

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

В середине 1970-х годов учеными-математиками был разработан алгоритм RSA. Используя его, можно применять в криптографии «публичные ключи». Суть этого алгоритма состоит в том, что существует два криптоключа: один используется для зашифровки, а второй применяется для расшифровки. «Публичным ключом» называется код для зашифровки, так как он не является секретным и его можно свободно передавать. В отличии от ключей для зашифровки, ключи для расшифровки являются секретными, (ещё их называю приватными) и это значит, что расшифровать сообщение сможет только владелец этого ключа.

Действие алгоритма RSA основано на невозможности получения из публичного ключа приватного ключа, который необходим для расшифровки. Поэтому, если бы действие знаменитой киноленты «Семнадцать мгновений весны» происходило сейчас, Центру было бы достаточно отправить Штирлицу новый публичный ключ, а Мюллеру не удалось бы расшифровать их сообщения, сколько бы он не пытался.

Какой лучше выбрать SSH клиент?

Чтобы использовать Secure Shell-доступ достаточно скачать, а затем установить любой SSH-клиент. Специалисты советуют отдать предпочтение популярному и бесплатному клиенту Filezilla . Также существует WinSCP2 , так как это одна из наиболее эффективных программ, которая может работать по протоколу SSH2. Программа визуально похожа на достаточно известный FTP-клиент - CuteFTP , она имеет хороший графический интерфейс, а также предоставляет возможность сравнения контента каталогов. Третей в этом списке идет программа PuTTY (как настроить PuTTY), которая тоже имеет своих поклонников, на нашим экспертам понравилась меньше всего.

Для того чтобы осуществить настройку SSH-клиента, достаточно указать ваше доменное имя (или User ID), IP адрес, пароль и выбрать SHH-протокол. Другие настройки вы можете оставить по умолчанию. После того, как соединение будет установлено, сервер отправит запрос на введение пароля и имени пользователя. вам следует ввести данные, аналогичные тем, что вы используете для получения FTP-доступа (их обычно присылает хостинг-провайдер в первом письме, после создания аккаунта).

Часто бывает такое, что у хостинг-провайдера SSH-доступ является дополнительной платной услугой. Поэтому, если у вас что-то не получается настроить, то обратитесь в поддержку хостера для выяснения причин.

С помощью защищенного протокола SSH администраторы подключаются к своим серверам для безопасной работы. Рассмотрим особенности этого протокола подробнее:

Что такое SSH-протокол

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

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

Основные функции, доступные при использовании SSH-протокола:

  • Передача любых данных через защищенное SSH-соединение, включая сжатие данных для последующего шифрования.
  • X11 Forwarding - механизм, позволяющий запускать программы UNIX/Linux-сервера в виде графической оболочки, как в Windows (использовать X Window System).
  • Переадресация портов - передача шифрованного трафика между портами разных машин.

Безопасность SSH-соединения обеспечивается:

  • шифрованием данных одним из существующих алгоритмов
  • аутентификацией сервера и клиента одним из нескольких доступных методов
  • наличием дополнительных функций протокола, направленных на предупреждение различных хакерских атак

Аутентификация сервера дает защиту от:

  • взлома путем подмены IP-адресов (IP-spoofing), когда один удаленный хост посылает пакеты от имени другого удаленного хоста
  • подмены DNS-записей (DNS-spoofing), когда подменяется запись на DNS-сервере, в результате чего соединение устанавливается с хостом, который указан в подмененной записи, вместо необходимого
  • перехвата открытых паролей и других данных, передаваемых в открытом виде через установленное соединение

На сегодняшний день существуют две версии протокола SSH (SSH-1 и SSH-2), причем вторая версия усовершенствована и расширена по сравнению с первой. Например, вторая версия устойчива к атакам вида MITM («человек посередине», атака посредника). Также существуют две редакции данного протокола: открытая версия (бесплатная) и коммерческая (платная). Бесплатная версия - OpenSSH - встроена во все UNIX-подобные операционные системы в виде стандартных утилит SSH-клиента и SSH-сервера.

Коммерческая реализация SSH-протокола - SSH Communications Security - разработана одноименной организацией. Имеет небольшие отличия от бесплатной версии, такие как доступность коммерческой технической поддержки, наличие инструментов веб-управления и др. Основной набор команд и возможностей практически одинаковый у обоих продуктов.

Для ОС Windows выпущены различные SSH-клиенты и оболочки, самые распространенные из них - это бесплатные PuTTY и WinSCP . Для других операционных систем также существуют свои SSH-клиенты.

Что такое SFTP-протокол

SFTP-протокол (от англ. SSH File Transfer Protocol ) – сетевой протокол прикладного уровня, предназначенный для передачи файлов и других действий с ними через имеющееся надежное соединение. Протокол был разработан как расширение SSH-2, предназначенное для операций с файлами по защищенному каналу, однако может работать и с другими протоколами, обеспечивающими безопасное соединение сервера с клиентом. Иными словами, для надежной работы через SFTP-протокол необходимо иметь установленное защищенное соединение (например, SSH), которое проводит аутентификацию клиента и сервера и устанавливает факт их надежности, поскольку сам SFTP-протокол не проводит аутентификацию и не обеспечивает безопасность.

SFTP имеет ряд преимуществ перед своими предшественниками - FTP и SCP - таких, как прерывание передачи файла, удаление, возобновление передачи, связь переданных файлов с основными атрибутами, например, меткой даты/времени, а также более высокая платформонезависимость.

SFTP-протокол реализуется через SFTP-сервер и SFTP-клиент, которые являются подсистемами OpenSSH.

Для чего используются SSH и SFTP протоколы

Чаще всего протоколы SSH и SFTP используются для удаленной работы с операционной системой или переноса большого количества файлов.

Например, клиент берет в аренду сервер или какую-то часть серверного пространства. Возникает необходимость переносить туда уже имеющиеся данные клиента, например, сайт или почтовые файлы. Провайдер должен обеспечить надежность и быстроту обмена данными с его сервером, особенно если речь идет о больших объемах информации и ее высокой конфиденциальности. В этом случае на удаленной машине (в данном случае - виртуальном сервере) устанавливается SSH-сервер (со встроенным SFTP-протоколом), а на клиентском компьютере - SSH-клиент. Создается SSH-туннель, и обмен данными между клиентом и удаленным сервером осуществляется через надежное соединение со всеми преимуществами протокола, описанными выше.

Также SSH может использоваться для удаленной работы по защищенному соединению с различными сервисами провайдера, такими как программное обеспечение, операционные системы и т.д.

Как работает SSH

По протоколу SSH работает набор программ, служащих для выполнения различных действий на удаленной операционной системе. Например, программа sshd обеспечивает серверную функциональность SSH, она должна быть запущена на SSH-сервере. Программа ssh запускается на SSH-клиенте и позволяет устанавливать соединение с удаленным хостом, регистрироваться на нем, работать с удаленной машиной через SSH-соединение.

Для запуска тех или иных программ SSH-протокола существуют специальные команды с набором различных опций. Эти команды могут отличаться в зависимости от используемой клиентской операционной системы и оболочки SSH-клиента. Команды запускаются либо из командной строки, если речь идет о UNIX-подобных системах, либо посредством графического интерфейса в соответствующих SSH-оболочках.

Как подключиться по SSH

Если на вашем компьютере установлена ОС Windows, а на удаленной машине UNIX-подобная система (например, Linux), то для установки SSH-соединения можно использовать PuTTY . Это бесплатная программа под Windows состоит из одного запускаемого файла и не требует инсталляции.

Чтобы установить соединение при помощи PuTTY, необходимо проделать следующие действия.

Запустить PuTTY (putty.exe).


По умолчанию никаких дополнительных настроек проводить не нужно, можно убедиться, что указан 22-й порт и тип соединения Connection type - SSH. В поле Host Name (or IP address) нужно ввести имя удаленного компьютера или его IP-адрес и нажать кнопку Open .


Может появиться предупреждение системы безопасности PuTTY, однако если есть уверенность в том, что хост достоверен, то нужно нажать Да и продолжить соединение.


В появившейся командной строке нужно ввести имя пользователя, под которым будет выполняться вход на удаленный компьютер.


В следующей строке нужно ввести пароль для данного пользователя. При вводе пароля никакие символы в командной строке не отображаются, поэтому необходимо просто набрать пароль и нажать клавишу ввода (Enter). Если введены неправильные имя пользователя и пароль, то выведется ошибка « Access denied », в случае успешного подключения предоставляется командная строка удаленного компьютера.