Как пользоваться протоколом SSH в Ubuntu: установка и настройка. Как пользоваться SSH? А также установка и настройка (Linux, Windows, macOS, Android, iOS) Установка ssh ubuntu server

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

Служба ssh позволяет получить доступ к терминалу удаленного компьютера и выполнить там все необходимые вам команды. При своей простоте она достаточно безопасна, чтобы использоваться для решения серьезных коммерческих задач, так и задач обычных пользователей. В этой статье мы рассмотрим как выполняется установка ssh Ubuntu 16.04, а также поговорим о начальной настройке ssh сервера.

SSH или Secure Shell - это протокол безопасного доступа из одного компьютера к другому по сети. У протокола SSH очень много возможностей. Вы можете создавать защищенные соединения между компьютерами, открывать командную строку на удаленном компьютере, запускать графические программы, передавать файлы и организовывать частные сети.

За поддержку протокола SSH в Linux отвечает набор программного обеспечения OpenSSH. Это открытая реализация этого протокола, которая предоставляет все необходимые возможности. В состав пакета OpenSSH входят утилиты для установки соединения, передачи файлов, а также сам ssh сервер.

Установка OpenSSH в Ubuntu

Установить ssh на Ubuntu будет очень просто, программа считается стандартной и используется почти везде. Хотя по умолчанию в дистрибутиве ее нет, но зато она есть в официальных репозиториях.

Поэтому для установки откройте терминал с помощью сочетания клавиш Ctrl+Alt+T и выполните команду:

sudo apt install openssh-server

Будет загружено несколько пакетов, а когда установка ssh сервера Ubuntu завершится, программа будет готова к работе. Если вы хотите чтобы служба запускалась автоматически нужно добавить его в автозагрузку. Поэтому чтобы включить ssh Ubuntu 16.04 выполните:

sudo systemctl enable sshd

Если затем вы захотите удалить службу из автозагрузки, используйте команду disable:

sudo systemctl disable sshd

Что касается клиента ssh, то он уже установлен в системе по умолчанию. Сейчас вы можете попробовать подключиться к локальному ssh серверу просто набрав:

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

Точно таким способом вы можете получить ssh доступ ubuntu к любому другому компьютеру из сети. Для этого достаточно указать вместо localhost его ip адрес и имя пользователя в таком формате:

$ ssh имя_пользователя @ ip_адрес

Настройка SSH в Ubuntu

С параметрами по умолчанию сервер SSH не очень безопасен поэтому перед тем, как программа будет готова к полноценному использованию ее нужно немного настроить. Все настройки сервера SSH хранятся в конфигурационном файле sshd_config, который находится в папке /etc/ssh.

Перед тем как вносить изменения в этот конфигурационный файл рекомендуется сделать его резервную копию, для этого можете использовать такую команду:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.factory-defaults

sudo vi /etc/ssh/sshd_config

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

По умолчанию вход от имени суперпользователя включен, рекомендуется отключить такую возможность. Для этого найдите строчку PermitRootLogin и замените ее значение на no:

Чтобы разрешить аутентификацию по ключу, а не по паролю найдите строку PubkeyAuthentication и убедитесь, что ее значение yes .

После того как все настройки будут завершены, сохраните изменения нажав:w и перезапустите службу ssd:

sudo systemctl restart ssh

Более подробно про настройку и использование различных тонкостей ssh рассказано в статье .

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

ssh -p 2222 localhost

К тому же, если на компьютере установлен и настроен брандмауэр, то в нем тоже нужно разрешить доступ к новому порту ssh, для этого выполните:

sudo ufw allow 2222

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

sudo ufw allow 22

Настройка ssh Ubuntu 16.04 полностью завершена.

Выводы

Теперь, когда установка ssh Ubuntu 16.04 завершена, вы можете получить удаленный доступ к своему компьютеру через интернет и быть уверенными что он находится в безопасности. Если у вас остались вопросы, спрашивайте в комментариях.

На завершение видео, где подробно рассказано о том, что такое ssh:

Мы разобрались, что такое SSH и в чем ее преимущества, также мы реализовали самый простой пример SSH- сервера и клиента.

Сегодня я расскажу про более детальную настройку SSH- сервера.

Как гласит известная фраза, «в Linux все есть файл», поэтому для настройки SSH- сервера необходимо и достаточно отредактировать один конфигурационный файл. Его полный путь — /etc/ssh/sshd_config . Для редактирования откроем этот файл с правами суперпользователя любым текстовым редактором.

Перед редактированием сделаем на всякий случай backup файла:

Sudo cp /etc/ssh/sshd_config{,.bak}

Теперь посмотрим его содержимое:

Sudo nano /etc/ssh/sshd_config

После каждого изменения этого файла необходимо перезапустить ssh- сервер для применения наших изменений.

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

Port

Здесь прописывается, какой порт будет слушать наш сервер. По умолчанию он слушает 22 порт TCP/IP . Интересный факт, что можно указать несколько портов. Например:

ListenAddress

Общий вид настройки можно записать так:

ListenAddress host | IPv4_addr | IPv6_addr ListenAddress :port

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

Eth0 – 192.168.0.1 eth1 – 192.168.0.2 eth2 – 192.168.0.3 eth3 – 192.168.0.4

По умолчанию ssh- сервер находится в состоянии ожидания подключения на всех IP- адресах. Если хотите, чтобы пользователи могли авторизовываться только на интерфейсах 2 и 3 , то следует сделать так:

ListenAddress 192.168.0.2 ListenAddress 192.168.0.3

Здесь можно также указать порт. Например:

ListenAddress 192.168.0.2:222

Если порт не задан, ssh будет слушать на этом адресе и
на порту, указанному в опции Port. Если вы будете использовать ListenAddress не указывая порт, то опция Port должна предшествовать опции ListenAddress. Если вообще не указывать ListenAddress, то по умолчанию сервер слушает на всех локальных адресах.

Address Family

Указывает, какое семейство IP адресов должно быть использовано сервисом ssh . Возможные варианты:
“any” — любые
“inet” (только IPv4 )
“inet6” (только IPv6 )
По умолчанию — “any”.

Имеет смысл по возможности ограничить семейство обрабатываемых адресов реально используемыми, т. е. если вы используете только IPv4 - отключите IРv6 , и наоборот.

Например, для разрешения IPv4 и запрета IPv6:

AddressFamily inet

Protocol

ssh может работать с протоколами SSH1 и SSH2. При этом использование небезопасного SSH1 крайне не рекомендуется. Заставить ssh работать только с протоколом SSH2 можно так:

Protocol 2

PermitRootLogin

По умолчанию зайти на удаленный сервер под пользователем root никто не запрещает. Но это не совсем безопасно. В место этого более правильно будет авторизовываться под пользовательской учетной записью и повышать свои привилегии с помощью команды ‘su -‘, либо использовать ‘sudo’.

Если в вашей организации несколько системных администраторов и все они подключаются к серверу под суперпользователем, то не всегда можно узнать кто из администраторов находится на сервере. Поэтому после отключения возможности авторизации напрямую под пользователем root, системные администраторы сначала будут заходить под своей учетной записью и только после этого получать привилегии суперпользователя; это облегчить аудит сервера и действий, которые производят сисадмины.
Для отключения вышеописанной функции следует отключить параметр PermitRootLogin , установив значение “no”.

PermitRootLogin no

PermitEmptyPasswords

Блокируем пустые пароли

PermitEmptyPasswords no

AllowUsers, AllowGroups

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

Для этого в конфигурационный файл sshd_config следует добавить определенных пользователей, существующих на сервере. В примере ниже это пользователи john, peter и michael, которым разрешен вход на сервер. Имя пользователей разделены пробелами.

AllowUsers john peter michael

При добавлении всех пользователей, которые присутствуют в какой-либо опроеделенной групппе следует указать так, как это представлено на примере ниже. Группы пользователей, которым разрешен вход на сервер разделены также пробелом.

AllowGroups developers administrators

DenyUsers, DenyGroups

В противовес параметра, разрешающего доступ определенным пользователям или группам, вы также можете указать пользователей или группы, которым запрещен вход на сервер.
Для этого следует добавить в конфигурационный файл sshd_config параметр DenyUsers , в котором через пробел указать тех пользователей, которым запрещен доступ на сервер. На примере ниже это системный apache, а так же вполне реальный boris.

DenyUsers apache boris

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

DenyGroups marketing hackers

Обратите внимание на то, что можно использовать комбинации запрещающих и разрешающих параметров: DenyUsers , AllowUsers , DenyGroups , и AllowGroups .

LoginGraceTime

При попытке авторизоваться по ssh на сервер у вас есть 2 минуты, чтобы ввести логин и пароль. Если вы этого не сделаете, то соединение с сервером будет разорвано. 2 минуты ожидания авторизационных данных это довольно много. Следует ограничить до 1 минуты или даже до 30 секунд.

Для этого следует изменить параметр LoginGraceTime путем редактирования файла sshd_config, и указать там требуемое время. В примере ниже это 1 минута.

LoginGraceTime 1m

ClientAliveInterval

Рассоединение при отсутствии активности в шелле

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

Используя Bash, вы можете достичь этого, изменив переменную окружения TMOUT .

В OpenSSH же это достигается путем комбинации параметров ClientAliveCountMax и ClientAliveInterval в конфигурационном файле sshd_config.

  • ClientAliveCountMax — указывает максимальное количество checkalive сообщений, отсылаемых ssh- сервером, при которых он не получает какой-либо ответ от ssh- клиента. По умолчанию это 3.
  • ClientAliveInterval — указывает время ожидания (таймаут) в секундах. После указанного времени ssh- сервер отошлет checkalive сообщение клиенту, ожидая от него ответ (response) . По умолчанию — это 0, то есть сервер не будет отсылать сообщения для проверки.

Для того, чтобы ваш ssh- клиент автоматически отключался после 10 минут (600 секунд), следует внести изменения в конфигурационный файл sshd_config следующим образом:

ClientAliveInterval 600 ClientAliveCountMax 0

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

Всем удачи и до скорых встреч на нашем блоге!

This section of the Ubuntu Server Guide introduces a powerful collection of tools for the remote control of, and transfer of data between, networked computers called OpenSSH . You will also learn about some of the configuration settings possible with the OpenSSH server application and how to change them on your Ubuntu system.

OpenSSH is a freely available version of the Secure Shell (SSH) protocol family of tools for remotely controlling, or transferring files between, computers. Traditional tools used to accomplish these functions, such as telnet or rcp , are insecure and transmit the user"s password in cleartext when used. OpenSSH provides a server daemon and client tools to facilitate secure, encrypted remote control and file transfer operations, effectively replacing the legacy tools.

The OpenSSH server component, sshd , listens continuously for client connections from any of the client tools. When a connection request occurs, sshd sets up the correct connection depending on the type of client tool connecting. For example, if the remote computer is connecting with the ssh client application, the OpenSSH server sets up a remote control session after authentication. If a remote user connects to an OpenSSH server with scp , the OpenSSH server daemon initiates a secure copy of files between the server and client after authentication. OpenSSH can use many authentication methods, including plain password, public key, and Kerberos tickets.

Installation

Installation of the OpenSSH client and server applications is simple. To install the OpenSSH client applications on your Ubuntu system, use this command at a terminal prompt:

sudo apt install openssh-client

To install the OpenSSH server application, and related support files, use this command at a terminal prompt:

sudo apt install openssh-server

The openssh-server package can also be selected to install during the Server Edition installation process.

Configuration

You may configure the default behavior of the OpenSSH server application, sshd , by editing the file /etc/ssh/sshd_config . For information about the configuration directives used in this file, you may view the appropriate manual page with the following command, issued at a terminal prompt:

man sshd_config

There are many directives in the sshd configuration file controlling such things as communication settings, and authentication modes. The following are examples of configuration directives that can be changed by editing the /etc/ssh/sshd_config file.

Prior to editing the configuration file, you should make a copy of the original file and protect it from writing so you will have the original settings as a reference and to reuse as necessary.

Copy the /etc/ssh/sshd_config file and protect it from writing with the following commands, issued at a terminal prompt:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.original sudo chmod a-w /etc/ssh/sshd_config.original

The following are examples of configuration directives you may change:

    To set your OpenSSH to listen on TCP port 2222 instead of the default TCP port 22, change the Port directive as such:

    To have sshd allow public key-based login credentials, simply add or modify the line:

    PubkeyAuthentication yes

    If the line is already present, then ensure it is not commented out.

    To make your OpenSSH server display the contents of the /etc/issue.net file as a pre-login banner, simply add or modify the line:

    Banner /etc/issue.net

    In the /etc/ssh/sshd_config file.

After making changes to the /etc/ssh/sshd_config file, save the file, and restart the sshd server application to effect the changes using the following command at a terminal prompt:

sudo systemctl restart sshd.service

Many other configuration directives for sshd are available to change the server application"s behavior to fit your needs. Be advised, however, if your only method of access to a server is ssh , and you make a mistake in configuring sshd via the /etc/ssh/sshd_config file, you may find you are locked out of the server upon restarting it. Additionally, if an incorrect configuration directive is supplied, the sshd server may refuse to start, so be extra careful when editing this file on a remote server.

Итак, в Интернете, понятное дело, что есть огромное количество примеров установки SSH, но вот незадача-то 🙂 не везде описаны все детали, и порой новичку в данной ситуации ой как нелегко приходится, сам на себе это испытал… Итак, вот полное и подробное до мельчайших деталей описание установки великого и могучего SSH.

Сначала установим SSH на машине на которую планируем подсоединяться. Для этого в консоли (командной строке, терминале) введём команду:

sudo apt-get install openssh-server

После этой команда автоматически найдётся и установится SSH (конечно же необходимо подсоединение к великому и могучему Интернету). Затем необходимо произвести настройку. Вся конфигурация нашего сервера производиться изменением файла /etc/ssh/sshd_config . Но для начала, я бы порекомендовал сделать резервную копию исходного конфигурационного файла. Для этого пишем:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.original

Теперь оригинальный конфигурационный файл скопируется в ту же дирректорию что и был, но уже будет называться sshd_config.original , после этого мы можем спокойно производить все необходимые изменения, так как в любой момент сможем восстановить оригинальные настройки. Итак открываем конфигурационный файл для редактирования, я его открываю через редактор nano, на мой взгляд это прекрасный редактор для работы в консоли.

sudo nano /etc/ssh/sshd_config

Вы увидите следующие директивы:

  • Port 22 — указывает порт по которому сервер будет ожидать входящего соединения. Например, Port 1234 означает что к серверу можно будет подключиться по порту 1234. Но стандартный — 22 порт, хотя я рекомендовал бы его сменить, так как именно с него и начинают попытки взлома сервера «недоброжелательные личности Интернет просторов».
  • PermitRootLogin no — лучше установите в значение no . Этим самым Вы запретите логиниться под рутом.
  • ListenAddress — указывает какой протокол/интерфейс будет прослушиваться ssh.
  • Protocol — позволяет выбрать версию протокола 1 или 2. Рекомендуется протокол 2.
  • HostKey — ключевые файлы для второй версии протокола SSH
  • PermitEmptyPasswords no — запретить пустые пароли, надёжность не помешает.
  • UsePrivilegeSeparation — лучше оставить включенным для безопасности.
  • AllowUsers Goodboy — этого параметра нет в конфиге, советую дописать. Goodboy — имя вашего юзера (он у каждого конечно же свой, это просто пример). Этот параметр устанавливает разрешение логинится только и только с этим именем, ssh пробивают не только на предмет пароля, но и на предмет системных или стандартных имен. К примеру apache, www, которые по каким-то причинам могут оказаться беcпарольными, или andy, bobby, anna и тп. К имени Goodboy можно добавить ip-адрес — [email protected] — если вы уверены, что на клиентской машине всегда именно этот не меняющийся адрес. Такой параметр разрешит логинится только пользователю Goodboy и только при условии, что его хост совпадает с заданным. В принципе это конечно же не обязательно, но пять же, дополнительная защита не помешает.

Перенастраиваем те настройки которые вам нужны дополнительно, затем нажимаем кнопку F3 для сохранения и затем Enter для подтверждения и F2 для выхода в консоль обратно.

Затем перезагружаем SSH демон:

sudo /etc/init.d/ssh restart

Затем мы можем к нему подсоединяться. Как правило, сервер — на Linux стоит, а рабочие машины как правило на Windows, то и подсоединяться к серверу будем через ОС Windows. Для этого на машине с которой планируем подключаться устанавливаем 2 програмки: Putty — для доступа к командной строке сервера, WinSCP — для более удобных стандартных операций копирования, удаления, перемещения, создания папок на сервере и так далее. Последняя программа своим интерфейсом напоминает аналог Total commander, Far manager и подобные им программы. На самом же деле можно использовать не только WinSCP, но и вышеперечисленные программы, а так же FileZilla и прочие, но легче, удобнее, и менее проблемнее в настройке и работе, на мой взгляд текущая программа. Итак, для подсоединения необходимо всего навсего указать порт к которому хотим подсоединиться, по умолчанию 22 если Вы его не изменили, а затем имя хоста или его IP адресс. Так как сервера, как правило ставятся на статические IP то в этом нет никаких проблем.

Возможностей организовать удалённый доступ к вашему компьютеру через интернет-соединение существует в большом количестве. Некоторые из них являются очень сложными и используются лишь специалистами в профессиональной среде, в то время как другие - очень простые и их могут освоить даже неопытные пользователи. Мы уже писали о нескольких способах, в частности, о программе TeamViewer и протоколе VNC.

Нюансы работы с протоколом SSH в Ubuntu.

В этой статье мы поговорим о протоколе безопасного подключения SSH, в последнее время ставшего практически стандартом в среде пользователей Linux. Он является очень надёжным, поскольку поддерживает шифрование, а также его очень легко настраивать. Мы рассмотрим особенности протокола SSH, а также научимся выполнять настройки сервера и клиента. Всё, что от вас будет требоваться - наличие компьютера с установленной операционной системой Ubuntu и интернет-подключение.

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

Существует множество утилит, отвечающих за управлением протоколом. На операционной системе Ubuntu самым известным является Open SSH. Это полностью свободный продукт с открытой лицензией и полным набором самых необходимых функций. Клиент для управления SSH-подключением уже включён в дистрибутив Ubuntu , вам нужно будет лишь установить и настроить серверные компоненты. Управление осуществляется через команды в терминале.

Установка SSH в Ubuntu

Поскольку протокол SSH клиент для его управления является общепринятым стандартом, установить его можно при помощи короткой команды в терминале Ubuntu. для этого запустите сам терминал , нажав комбинацию кнопок на клавиатуре Ctrl + Alt + T, после чего примените команду sudo apt-get install ssh. После подготовки к скачиванию утилита запросит, хотите ли вы продолжить. переключите клавиатуру на русский язык и нажмите Д. На вашем компьютере с Ubuntu установка ssh будет завершена уже через пару секунд. Если вы желаете активировать автоматический запуск при включении системы, используйте для этого команду sudo systemctl enable sshd. соответственно, если потом вы пожелаете убрать службу из автоматического запуска, вам понадобится команда sudo systemctl disable sshd.

Теперь можно проверить, как всё работает. Этого достаточно попробовать подключиться к локальному SSH server: ssh localhost. Утилита обязательно запросит пароль суперпользователя, а также предложит добавить введённый адрес в список разрешённых. Если у вас всё работает, как положено, вы увидите небольшое сообщение, заканчивающиеся уведомление о дате последнего подключения к адресу.

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

ssh имя_пользователя@ip_адрес

Например, если вы хотите подсоединиться к компьютеру Васи Пупкина с адресом 132.14.25.10, то команда будет выглядеть следующим образом:

ssh [email protected]

Настройка SSH в Ubuntu

Для правильной и безопасной работы с SSH-сервером его нужно определённым образом настроить. Для этого нужно отредактировать файл параметров sshd_config, расположенный в каталоге /etc/ssh. Примечательно, что его нельзя изменить, просто открыв через файловый менеджер в обычном текстовом редакторе. Система оповестит вас о недостаточных правах, и вы просто не сможете сохранить изменения. Поэтому вам снова понадобится терминал и знание нескольких команд, о которых мы сейчас расскажем. Давайте рассмотрим необходимые шаги по настройке ssh сервера в операционной системе Ubuntu .


Что можно поменять в настройках SSH


Минимально необходимые команды


Заключение

Как видите, ничего очень сложного в настройке протокола ssh на компьютере с операционной системой Ubuntu нет. Вам нужно лишь один раз всё внимательно настроить, воспользовавшись нашей подробной инструкцией, и пользоваться возможностями удалённого подключения. Если у вас возникают вопросы, задавайте их в комментариях.