Виртуальная реальность

Зайти на новый сервер по ssh. Как пользоваться SSH? А также установка и настройка (Linux, Windows, macOS, Android, iOS). SSH-протокол – что это

Что такое и для чего нужен SSH

Безопасный шелл (SSH) - это сетевой протокол, обеспечивающий функции шелла на удалённой машине через безопасный канал. SSH несёт в себе различные улучшения безопасности, среди них аутентификация пользователя/хоста, шифрование данных и целостность данных, благодаря чему невозможны популярные атаки вроде подслушивания (eavesdropping), DNS/IP spoofing, подделка данных (data forgery), перехват соединения (connection hijacking) и т. д. Пользователям ftp, telnet или rlogin, которые используют протокол, передающий данные в виде открытого текста, крайне рекомендуется переключиться на SSH.

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

OpenSSH серверные/клиентские пакеты поставляются со следующими утилитами:

  • OpenSSH сервер: sshd (SSH daemon)
  • OpenSSH клиент: scp (безопасное удалённое копирование), sftp (безопасная передача файлов), slogin/ssh (безопасный удалённый вход), ssh-add (дополнение закрытого ключа), ssh-agent (агент аутентификации), ssh-keygen (управление ключами аутентификации).
Установка сервера и клиента OpenSSH на Linux

Если вы хотите установить сервер/клиент OpenSSH и настроить автоматический запуск сервера OpenSSH, следуйте следующим инструкциям, которые различаются в зависимости от дистрибутива.

Debian, Ubuntu или Linux Mint

$ sudo apt-get install openssh-server openssh-client

В системах основанных на Debian, сразу после установки, OpenSSH будет запускаться автоматически при загрузке. Если по каким либо причинам сервер OpenSSH не запускается автоматически при запуске системы, вы можете выполнить следущую команду для однозначного добавления ssh в загрузку при старте системы.

$ sudo update-rc.d ssh defaults

Fedora или CentOS/RHEL 7

$ sudo yum -y install openssh-server openssh-clients $ sudo systemctl start sshd service $ sudo systemctl enable sshd.service

CentOS/RHEL 6

$ sudo yum -y install openssh-server openssh-clients $ sudo service sshd start $ sudo chkconfig sshd on

Arch Linux

$ sudo pacman -Sy openssh $ sudo systemctl start sshd service $ sudo systemctl enable sshd.service

Настройка сервера OpenSSH

Если вы хотите настроить сервер OpenSSH, вы можете редактировать общесистемный файл конфигурации размещённый в /etc/ssh/sshd_config.

Есть пара опций OpenSSH, которые могут заинтересовать:
По умолчанию, sshd прослушивает порт 22 и ожидает входящие соединения ssh. Изменив порт по умолчанию для ssh, вы можете предотвратить различные автоматизированные атаки хакеров.
Если ваша машина имеет более чем один физический сетевой интерфейс, возможно вы заходите уточнить, какой из них связан с sshd, для этого вы можете использовать опцию ListenAddress. Эта опция помогает улучшить безопасность посредством ограничения входящих SSH только через особый интерфейс.

HostKey /etc/ssh/ssh_host_key

Оция HostKey определяет гда размещён персональный хост ключ.

PermitRootLogin no

Оция PermitRootLogin – может ли root входить в систему посредством ssh.

AllowUsers alice bob

Используя опцию AllowUsers вы можете выборочно отключить службу ssh для определённых пользователей Linux. Можно задать множество пользователей, разделяя их пробелами.

После того, как был изменён /etc/ssh/sshd_config , убедитесь, что перезапустили службу ssh.

Для перезапуска OpenSSH на Debian, Ubuntu или Linux Mint:

$ sudo /etc/init.d/ssh restart

Для перезапуска OpenSSH на Fedora, CentOS/RHEL 7 или Arch Linux:

$ sudo systemctl restart sshd.service

Для перезапуска OpenSSH на CentOS/RHEL 6:

$ sudo service sshd restart

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

Подключение к SSH из Linux

Пользователям Linux не нужно устанавливать дополнительных программ.

Подключение к SSH из Windows

Скрыто от гостей

.

Cygwin – это не просто клиент SSH. Это мощный комбайн, в котором поддерживаются многие команды Linux. Например, в Cygwin очень легко создавать SSL-сертификаты (точно также, как и в Linux). В Windows для создания самоподписанных сертификатов нужно поплясать с бубном. В Cygwin очень удобно пользоваться cURL (не нужно ничего устанавливать отдельно) и т. д. Те, кому не хватает на Windows командной строки и программ Linux, в лице Cygwin найдут себе отдушину.

Установка Cygwin проста. Переходим на

Скрыто от гостей

И скачиваем

Скрыто от гостей

Скрыто от гостей

Скачается крошечный файл - это установщик. Установщик графический. Хоть он и содержит большое количество опций, все они довольно простые и многие знакомы по другим графическим установщикам. Если что-то непонятно, просто нажимайте «Далее». Пожалуй, только следующее окно может привести в замешательство:

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

Соединение SSH (общее для Linux и Windows)

Пользователи Linux открывают консоль, пользователи Windows печатают в Cygwin.

SSH нужна следующая информация для подключения:

  • IP или имя хоста
  • номер порта
  • имя пользователя
  • пароль пользователя
Два из этих параметров SSH может предположить: имя пользователя и номер порта. Если порт не указан, то предполагается порт по умолчанию. Если не указан пользователь, то используется то же имя, что и в системе, из которой происходит подключение. Например, адрес хоста для подключения 192.168.1.36 . Если я наберу

Ssh 192.168.1.36

Я вижу следующее

Alex@MiAl-PC ~ $ ssh 192.168.1.36 The authenticity of host "192.168.1.36 (192.168.1.36)" can"t be established. ECDSA key fingerprint is SHA256:sIxZeSuiivoEQ00RXAQHxylxuEA8SC5r/YPhL8wfp8s. Are you sure you want to continue connecting (yes/no)?

Поскольку я подключаюсь к хосту первый раз, то это незнакомый хост. У меня спрашивают, хочу ли я продолжить. Я набираю yes :

Warning: Permanently added "192.168.1.36" (ECDSA) to the list of known hosts. [email protected]"s password:

Хорошо, хост 192.168.1.36 добавлен в список знакомых хостов. У меня запрашивается пароль для пользователя Alex. Поскольку на сервере с SSH нет такого пользователя, но я нажимаю Ctrl+C (для разрыва) и ввожу команду вместе с именем пользователя удалённой системы. Пользователь вводится перед адресом удалённой машины и отделяется от адреса символом @. Символ @ на английском читается как at и можно перевести как «в». Т.е. запись [email protected] можно истолковать как «пользователь mial в машине 192.168.1.36 ».

Ssh [email protected]

Приглашение Alex@MiAl-PC сменилось приглашением mial@mint . Это означает, что мы уже на удалённой машине, т. е. у нас уже произошло соединение. Если нужно указать порт (если он отличается от стандартного), то порт нужно указывать после ключа -p. Например так:

Ssh [email protected] -p 10456

После подключения нас встречает примерно такое приветствие:

Linux mint 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1 (2015-05-24) x86_64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Tue Jun 16 15:32:25 2015 from 192.168.1.35

Из него следует, что удалённая машина - это Linux Mint, с ядром 3.16, 64-битная версия. Также важная информация о времени последнего входа и IP адресе с которого произошло соединение. Если время и IP вам незнакомы, а вы являетесь единственным пользователем, то ваша система скомпрометирована и нужно принимать соответствующие меры.

Наберём несколько команд, чтобы убедиться где мы и кто мы: pwd, [B]uname -a и т. д.:

Чтобы закончить сессию (отключиться), наберите

Или нажмите Ctrl+D .

Вход в SSH без ввода пароля

Во-первых, это просто удобнее. Во-вторых, это безопаснее.

Во-первых, нам нужно создать rsa ключи. Если вы пользователь Linux, то у вас всё в порядке. Если вы пользователь Windows, но вы не послушали мой совет и выбрали PuTTY, то у вас проблема и думайте сами, как её решать. Если у вас Cygwin, то всё также в порядке.

Если вы успели залогиниться на удалённой системе, разлогинтесь. После этого наберите

Ssh-keygen -t rsa

У нас спрашивают имя файла, не нужно ничего вводить, будет использовано имя по умолчанию. Также спрашивается пароль. Я пароль не ввожу.

Теперь на удалённой машине нам нужно создать каталог.ssh. Про выполнение команда на удалённой машине ещё будет рассказано ниже. Пока просто копируете команду, не забывая поменять IP адрес и имя пользователя на свои:

Ssh [email protected] mkdir .ssh

Теперь нам нужно скопировать содержимое файла id_rsa.pub на удалённую машину. Сделать это очень просто (не забываем менять данные на свои):

Cat .ssh/id_rsa.pub | ssh [email protected] "cat >> .ssh/authorized_keys"

Теперь просто логинимся и больше никакой пароль у нас не спрашивают. И так теперь будет всегда.

Выполнение команд на удалённом сервере без создания сессии шелла

Кроме открытия сессии шелла на удалённой системе, ssh также позволяет выполнять отдельные команды на удалённой системе. Например, для выполнения команды tree на удалённом хосте с именем remote-sys и отображением результатов на локальной системе, нужно сделать так:

Ssh remote-sys tree

Мой реальный пример:

Ssh [email protected] tree

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

Ssh remote-sys "ls *" > dirlist.txt

Реальный пример:

Ssh [email protected] "ls *" > dirlist.txt cat dirlist.txt

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

Ssh remote-sys "ls * > dirlist.txt"

Передача стандартного вывода с локальной машины на удалённую по ssh

Не менее интересный вариант выполнения команд приведён немного выше:

Cat .ssh/id_rsa.pub | ssh [email protected] "cat >> .ssh/authorized_keys"

  • Команда cat построчно считывает и отображает содержимое файла.ssh/id_rsa.pub , расположенного на локальной машине.
  • | (труба) передаёт то, что должно было бы появиться в стандартном выводе, другой команде.
  • Вместо команды, которая должна была бы обрабатывать передаваемые ей строки, происходит соединение к удалённой системе (ssh [email protected]).
  • На удалённую систему приходят строки, для которых предусмотрена команда cat >> .ssh/authorized_keys . Т.е. содержимое стандартного вывода построчно записывается в файл.ssh/authorized_keys, находящийся на удалённой машине.
Открытие графической программы, расположенной на удалённом компьютере

Для следующего фокуса нужно два компьютера с системой Linux. К сожалению, даже Cygwin с этим трюком не справляется. Причём оба Linux"а должны быть с графическим пользовательским интерфейсом.

Туннелирование с SSH

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

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

Пожалуй самая часто используемая из этих функций - это возможность транслировать трафик систем X Window. На системе с запущенным X сервером (это машины, которые имеют графический пользовательский интерфейс) возможно запустить программу X клиента (графическое приложение) на удалённой системе и видеть результаты её работы на локальной системе. Сделать это просто. Например, я хочу подключиться к удалённому хосту remote-sys и на нём я хочу запустить программу xload. При этом видеть графический вывод этой программы я смогу на локальном компьютере. Делается это так:

Ssh -X remote-sys xload

Реальный пример:

Ssh -X [email protected] gedit

Т.е. SSH запускается с ключом -X. А затем просто запускается программа. Посмотрите на скриншот.

Я нахожусь в Kali Linux. Я успешно логинюсь к удалённому компьютеру по SSH. После этого я запустил программу gedit. Этой программы, может быть, даже нет на Kali Linux, но она точно есть в Linux Mint, к которой я и подключился. Результат работы этой программы я могу видеть на экране так, будто бы программа запущена локально. Но, повторюсь, я хочу, чтобы вы это поняли, запущенной программы gedit на локальном компьютере нет. Если я захочу сохранить результат работы gedit (или любой другой программы, открытой таким образом), то окажется, что она работает в окружении удалённого компьютера, видит его файловую систему и т. д. Это удобно, когда вы хотите настроить удалённый компьютер используя графический интерфейс.

О том, как передать изображение со всего рабочего стола вы узнаете в этой же статье далее, в секции «Как настроить VNC через SSH».

На некоторых системах для этого «фокуса» нужно использовать опцию “ -Y ” вместо опции “ -X ”.

Копирование с/на удалённый компьютер (scp и sftp)

scp

Пакет OpenSSH также включает две программы, которые использует зашифрованный туннель SSH для копирования файлов по сети. Первая программа – scp («безопасное копирование») – используется чаще, как и схожая с ней программа cp для копирования файлов. Наиболее заметная разница в том, что источником файла может быть удалённый хост после которого следует двоеточие и расположение файла. Например, если мы хотим скопировать документ, названный document.txt из нашей домашней директории на удалённую систему remote-sys в текущей рабочей директории на нашей локальной системе мы можем сделать так:

Scp remote-sys:document.txt . document.txt 100% 177 0.2KB/s 00:00

Реальный пример:

# удалим файл на локальной машине, если он есть rm dirlist.txt # создадим файл на удалённой машине ssh [email protected] "ls * > dirlist.txt" # проверим его наличие ssh [email protected] "ls -l" # скопируем его на локальную машину scp [email protected]:dirlist.txt . # проверим его содержимое cat dirlist.txt

  • [email protected] - имя пользователя и удалённый хост,
  • . (точка) означает, что файл нужно скопировать в текущую рабочую директорию на удалённом сервере, при этом имя файла останется прежним, т. е. nfile.txt
  • Памятка :

    Для копирования файла с B на A когда залогинены в B:
    scp /path/to/file username@a:/path/to/destination
    Копирование файла с B на A когда залогинены в A:
    scp username@b:/path/to/file /path/to/destination

    sftp

    Вторая программа для копирования файлов через SSH - это sftp . Как следует из её имени, она является безопасным заменителем ftp программ. sftp работает как и оригинальная ftp программа. Тем не менее, вместо отправки чистым текстом она использует зашифрованный туннель SSH. Важным преимуществом sftp перед ftp является то, что для неё не требуется запущенный FTP сервер на удалённом хосте. Для неё требуется только SSH сервер. Это означает, что любая удалённая машина, которая подключена через SSH клиент может также быть использована как FTP-подобный сервер. Вот пример сессии:

    Alex@MiAl-PC ~ $ sftp [email protected] Connected to 192.168.1.36. sftp> ls dirlist.txt newfile.txt nfile.txt temp Видео Документы Загрузки Изображения Музыка Общедоступные Рабочий стол Шаблоны sftp> lls dirlist.txt nfile.txt sftp> ls temp temp/TakeMeHome sftp> cd temp/ sftp> get TakeMeHome Fetching /home/mial/temp/TakeMeHome to TakeMeHome sftp> bye

    SFTP протокол поддерживается многими графическими файловыми менеджерами, которые можно найти в дистрибутивах Linux. Используя как Nautilus (GNOME), так и Konqueror (KDE), мы можем вводить URI (ссылки) начинающиеся на sftp:// в строку перехода и работать с файлами, расположенными на удалённой системе с запущенным 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 », в случае успешного подключения предоставляется командная строка удаленного компьютера.


    Подключение по SSH возможно на всех тарифных планах , кроме тарифа «Host-Lite» . Если у вас заказан тарифный план «Host-Lite», повысьте тариф и у вас появится возможность соединения по SSH:

    На тарифах виртуального хостинга не предоставляется возможность использования Midnight Commander. Данная возможность присутствует .

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

    На вашем компьютере установлена ОС Windows

    Для подключения по SSH:

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

    На вашем компьютере установлена Linux-подобная ОС (Ubuntu, Kubuntu, Fedora, …)

    Подключиться по SSH можно через терминал, уже доступный в ОС.

    Готово, вы подключились по SSH.

    Можно ли создать дополнительного SSH-пользователя?

    На виртуальном хостинге подключение по SSH возможно только под основным логином хостинга (вида u1234567 ). Создать дополнительного пользователя SSH нельзя.

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

    Чтобы отключить SSH-доступ на хостинге, напишите . В заявке сообщите ваш логин хостинга (вида u1234567 ), для которого необходимо отключить доступ по SSH.

    Уважаемые читатели, сегодня мы с Вами продолжаем настраивать наш Ubuntu Server 10.04 LTS. В этой статье нам о том, без чего настоящий системный администратор ну никак не может позволить себе обойтись! :)

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

    Для этих целей как нельзя лучше подойдет SSH. Установка сервера SSH очень проста, для этого выполним apt-get install sshd После установки он сразу может принимать подключения без дополнительной настройки.

    Давайте несколько слов скажем о том, что же это за "зверь" такой - SSH? Это сокращение от Secure Shell (безопасная оболочка). Представляет собой сетевой защищенный протокол, который позволяет осуществлять управление удаленным компьютером и туннелирование нашего сетевого соединения с ним.

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

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

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

    Запускаем PuTTY, в списке слева выбираем Window->Translation , в выпадающем списке выбираем UTF8 , без этого все русские надписи будут отображаться "кракозябрами". Возвращаемся в пункт Session и в поле адреса (в правой стороне окна) вводим 192.168.0.2 (адрес вашего сервера), тип подключения указываем SSH.

    Можно сохранить эти настройки для последующих подключений, введя имя подключения в поле “saved sessions” и нажав кнопку save. В следующий раз для быстрого соединения можно будет просто дважды нажать на название сессии.

    По умолчанию подключение происходит по порту под номером 22 (именно его изначально "прослушивает" наш ssh-сервер, ожидая запроса на соединение от доверенного клиента).



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

    Если подключение состоялось, перед нами появится окно терминала удаленного компьютера (нашего сервера) с запросом на ввод логина. После ввода логина появится запрос на ввода пароля. Если все введено верно, мы увидим примерно такое приветствие Ubuntu:



    Поздравляю! Мы подключились! :) Теперь нам нужно получить права root (администратор). Для этого набираем в терминале: sudo su , нажимаем Enter и вводим свой пароль, если все правильно, то получится что-то вроде: root @servername:/home/username#

    Знак «~ » тильда, указывает на то, что мы находимся в домашней папке текущего пользователя

    $ - "говорит", что мы - в пользовательском режиме

    # - режим привилегированного суперпользователя (root)

    Все! Теперь можно производить различные манипуляции с сервером удаленно. Думаю, этим мы с Вами займемся уже в следующей статье:)

    На этой страничке рассмотрим несколько программ для Windows, с помощью которых можно подключиться к серверу под управлением FreeBSD или любой Unix-подобной системе, которая поддерживает соединение при помощи протокола SSH.

    Самый простой способ это подключение из командной строки (cmd) при помощи пакета OpenSSH.

    Установка OpenSSH для Windows и работа с ним.

    Установка пакета довольно проста и не требует специальных знаний, в чём либо. Скачать дистрибутив можно по ссылке ниже, размер порядка 2.5 мегабайта.


    Работать с ним просто, после установки пакета вызываем командную строку (выполнить - cmd) и набираем команду ssh с нужными параметрами:

    C:>ssh [email protected]

    В этом примере подключаемся к серверу с ip-адресом 192.168.5.39 под пользователем alex, далее система спросит пароль и затем выдаст shell подключаемого сервера.


    При первом подключении система спросит, нужно ли запомнить ключ подключения, отвечаем «yes».

    Для соединения через не стандартный порт существует ключик –p через который задаём нужный порт подключения, пример:

    C:>ssh [email protected] –p 31

    Самый простой и распространённый клиент для удалённой работы по SSH протоколу. PuTTY является свободным приложением с открытым исходным кодом и распространяется под Open Source лицензией MIT. Оригинальная версия PuTTY написана и поддерживается Саймоном Тэтхемом (www.putty.org)


    Работать с ней так же просто, запускаем PuTTY.exe, в поле «Host Name» вводим ip-адрес сервера и порт, по которому он «слушает». Нажимаем кнопку «Open» и при удачном соединении вводим свой логин и пароль.

    Из платных программ можно отметить SSH Explorer и eSH Client .

    SSH Explorer (http://www.sshexplorer.com ) SSH клиент имеет встроенную поддержку SFTP, со встроенным текстовым редактором и панелью просмотра файлов. Он будет полезен, если вам часто приходится безопасно передавать файлы на сервер и обратно.


    SSH Explorer для тех, кому приходится удаленно работать с *nix сервером при помощи ssh, но привыкших работать в среде Windows. На мой взгляд, лёгкий и довольно удобный.


    eSh Client (http://www.ecodesoftware.com ) представляет из себя многофункциональную программу «оболочку», в котором сразу присутствуют SSH клиент, SFTP/FTP и текстовый редактор. Некоторые функциональные возможности:

    Реализация SSH поддерживает различные режимы эмуляции экрана (VT100, VT220, VT320 и ANSI)

    FTPS: FTP через SSL и TLS обеспечивает большую безопасность на канале FTP с шифрованием SSL

    SCP: SCP передачи осуществляется простым способом в 3 шага

    Rexec: Удаленное выполнение - еще один инструмент в eSh Client

    Шифрование: DES, AES стандарты

    ESh Client поддерживает локальное и удаленное перенаправление портов (туннелирование)


    Кроме того, редактор eSh Client поддерживает множество языков программирования, таких как C, Java, PHP, Perl, JSP, HTML, SQL.

    - плагин для Firefox для работы по SSH.