https://losst.ru/ustanovka-ssh-ubuntu-16-04
Довольно часто может
понадобиться получить доступ к удаленному компьютеру или серверу через
интернет. В случае с персональным компьютером, это может понадобиться
для срочного решения какой-либо проблемы, а в случае с сервером это
вообще очень распространенная практика. В Linux наиболее часто для
решения таких задач используется протокол ssh.
Служба ssh позволяет получить доступ к терминалу удаленного
компьютера и выполнить там все необходимые вам команды. При своей
простоте она достаточно безопасна, чтобы использоваться для решения
серьезных коммерческих задач, так и задач обычных пользователей. В этой
статье мы рассмотрим как выполняется установка ssh Ubuntu 16.04, а также
поговорим о начальной настройке ssh сервера.
Что такое 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 localhost

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

Точно таким способом вы можете получить 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 рассказано в статье
как использовать ssh.
Если вы изменили порт, то при подключении в клиенте тоже нужно
указать новый порт, так как по умолчанию будет использоваться 22,
например:
ssh -p 2222 localhost
К тому же, если на компьютере установлен и настроен брандмауэр, то в
нем тоже нужно разрешить доступ к новому порту ssh, для этого выполните:
sudo ufw allow 2222
Даже если служба ssh находится на порту по умолчанию, его тоже нужно
открыть в брандмауэре если вы собираетесь подключаться к компьютеру
через интернет:
sudo ufw allow 22
Настройка ssh Ubuntu 16.04 полностью завершена.
Выводы
Теперь, когда установка ssh Ubuntu 16.04 завершена, вы можете
получить удаленный доступ к своему компьютеру через интернет и быть
уверенными что он находится в безопасности. Если у вас остались вопросы,
спрашивайте в комментариях.