5/5 - (1 голос)

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

Оглавление

История SSH

История протокола начинается с 1995 года, когда была опубликована его первая версия, разработанная исследователем Тату Улененом. От своих конкурентов – rlogin, telnet и rsh – он отличался конфиденциальностью и безопасностью, так как полностью шифровал и передаваемые данные, и ключи доступа к удаленным устройствам. К 200 году SSH приобрел уже около 2 000 000 пользователей, что для того времени было неплохим результатом. Но настоящее признание протокол приобрел в 2006 году, мосле его признания группой IETF в качестве рабочего стандарта.

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

Доступ к удаленному компьютеру

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

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

Вид команды предельно прост: достаточно ввести текст данного вида:

# ssh user@example.com

Или:

# ssh user@example.com -p port

Где ssh  – константа, а user и example.com – имя пользователя и домен/IP-адрес удаленного компьютера. Так как существуют очень мощные компьютеры, называемые серверами, и к ним подключается множество пользователей, то были созданы порты – т. е. трафик на удаленном компьютере делится на несколько частей.

Давайте попробуем подключиться к удаленному компьютеру с именем пользователя master_cdqtfzefxq и хостом 206.189.30.191. Введем команду:

# ssh master_cdqtfzefxq@206.189.30.191

Ввод команды

При подключении к незнакомым хостам у нас спрашивают, готовы ли мы подключиться к удаленному компьютеру. Отвечаем “yes”:

Добавление в список доверенных хостов

Теперь в зависимости от уровня защиты пользователя необходимо ввести пароль:

Ввод пароля

Как вы видите, у нас работает самый обычный терминал, правда, от имени другого пользователя:

Вход в консоль удаленного пользователя

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

Работа на удаленном компьютере

Для демонстрации возможностей запустим в программе nano (консольный редактор текстовых файлов) текстовый документ с именем ssh_demonstration.txt:

Открытие nano

Вот терминал в процессе редактирования файла:

Редактирование файла

Теперь попробуем открыть файл в less (просмотрщик текстовых файлов):

Открытие файла в less

Теперь надо попробовать установить программу. Не во всех ssh-аккаунтах есть root-доступ, необходимый для выполнения данного действия, поэтому стоит заранее об этом позаботиться.

Итак, введем команду установки текстового браузера links2:

# sudo apt-get install links2

Теперь откроем браузер командой:

# links2

Чтобы открыть URL-адрес, надо нажать G и ввести его:

Ввод ареса

И вот вожделенный Google (правда, не совсем такой, как все привыкли):

Google :D

Вот и все! Остается лишь добавить, что для выхода из терминала удаленного пользователя нужно ввести команду:

# exit

Копирование файлов с сервера на клиент и обратно

Часто пользователи встречаются с проблемой копирования файдов между удаленным устройством и своим компьютером, но не стоит паниковать! Необходимо всего лишь воспользоваться предустановленной утилитой scp и знать данные сервера. Вот как делается копирование файла с сервера на клиент:

# scp path/myfile user@host:/full/path/to/new/location/

И наоборот:

# sc user@host:/full/path/to/new/location/mylife path/

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

Попробуем перенести на компьютер заранее созданный файл ssh_demonstration.txt. Для этого введем команду (от имени локального пользователя, конечно же):

# scp  master_cdqtfzefxq@206.189.30.191:ssh_demonstration.txt '/home/daniil/Рабочий стол'

Передача файла по scp

На скриншоте можно увидеть, что файл успешно появился на рабочем столе.

Аутентификация без пароля

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

Для начала необходимо этот самый ключ создать. Делается это с помощью команды:

# ssh-keygen

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

Ввод нахождения ключа

Теперь можно ввести пароль для ключа (а можно и не вводить):

Ввод пароля

И вот ключ создан:

Окончание генерации

Теперь ключ надо скопировать на сервер командой:

# ssh-copy-id user@server

К примеру, в моем случае:

Копирование ключа на сервер

Вот и все! Можете входить на сервер без пароля!

Работа с файлами через FileZilla

FileZilla – программа, позволяющая обмениваться файлами через ssh с использованием графического интерфейса. Установить ее можно командой:

# sudo apt-get install filezilla

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

# filezilla

Интерфейс программы предельно прост:

FileZilla

Перейдем на вкладку “Файл”->”Менеджер сайтов”. Здесь нажмем “Новый сайт”, введем хост и порт, а также выберем протокол SFTP. Логин и пароль можно не вводить только на некоторых серверах, в противном случае выберите тип входа “Нормальный” и введите ваши данные.

Создание подключения

Теперь подтвердим, что доверяем серверу:

Подтверждение

Видим, что подключение прошло успешно:

Подключенный сайт

В левой колонке отображаются локальные файлы и папки, а в правой – удаленные.  Их можно перенести и скопировать без использования терминала. К примеру, перенесем уже давно созданный ssh_demonstration.txt:

Копирование файла

Вот и все! Пользуйтесь на здоровье – такой способ очень удобен для организации собственного хостинга.

Подключение с помощью утилиты PuTTy

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

# sudo apt-get install putty

Для начала запустим программу:

Вход

Теперь после ввода хоста и порта нажимаем “Open”. Нас просят ввести логин и пароль пользователя:

Главное окно PuTTy SSH Client

Вот и все!

Работа от имени удаленного пользователя

Также при установленном на сервере X11 и оконном менеджере будет возможность подключения с графическим интерфейсом. Остальные же действия будут аналогичными при подключении просто через терминал.

Заключение

Стоит сказать, что сервера – интересная штука, но к ним нужно знать подход. Надеюсь, данная статья поможет вам разобраться. Удачи!

1 КОММЕНТАРИЙ

  1. Добрый день. А есть ли способ изменить настройки ssh так, чтобы служба запускалась до экрана логина в десктоп ubuntu 18.04? Иначе в этой версии ubuntu ssh запускпется только после залогинивпния в графическом режиме юзера. А вдруг перезагрузка и всё…снаружи я беспомощен. Об этом почему-то в сети нет инфы. А там ведь “прекрасный” systemd. А я и не в курсе как его бороть в этом случае…

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here