Как установить linux по ssh

Обновлено: 05.07.2024

SSH — Это протокол, с помощью которого можно удаленно залогиниться и выполнять команды так, как будто находишься на удаленном сервере. Одним словом SSH это рабочая лошадка при общении с сервером linux

Чтобы соединиться с одного компьютера на другой посредством SSH, вам потребуется ssh-server и ssh-client.

В этой статье мы покажем как пользоваться SSH, как установить SSH и как настроить SSH в системах Linux.

Возможно вам будет интересно КОМАНДА SSH В LINUX

Установка ssh-server

Итак, у вас есть сервер, с которым вы хотите соединяться. Но для начала требуется установить openssh-server . Установка достаточно проста:

sudo apt install openssh-server

Эта команда подойдет для DEBIAN, UBUNTU. Как включить SSH в Fedora вы можете прочитать Здесь.

Установка очень быстро, не задавая вопросов.

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

Сделать это можно выполнив команду:

Изменение порта SSH

Изменение порта SSH

Установите любой свободный порт, например 8529, и перегрузите сервер:

После этого можно соединяться с сервером по ssh протоколу.

Установка linux-клиента

Как мне известно ssh-client установлен на всех системах linux из коробки, но если у вас ssh не установлен, тогда введите команду:

sudo apt install openssh-client

Соединение c сервером SSH

Соединиться с ssh-сервером можно одной командой:

Где имя_сервера это ip адрес сервера или имя сервера (если сервер локальный), к примеру:

Подключение к серверу

Подключение к серверу

Ой, клиент пытается подключиться к серверу по порту 22, но мы его поменяли на 8529. Исправим это:

Подключение к серверу

Подключение к серверу

/.ssh/known_hosts или просто удалите этот файл.

Отпечаток ssh сервера

Отпечаток ssh сервера

Далее вводим пароль. Не знаете какой пароль? Это пароль пользователя на сервере, с которым вы установили при установке Linux. В данном случае на скриншоте это пользователь root. Если нужно соединяться под именем другого пользователя, тогда требуется указать его имя перед сервером: user@192.168.1.80. После ввода пароля вы войдете на сервер.

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

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

Чтобы завершить соединение, введите команду exit.

Завершение соединения с SSH

Завершение соединения с SSH

Как пользоваться ssh в windows

Что делать если у вас нет linux? Для ОС Windows существует ряд программ, самая популярная из которых — putty. Есть также расширение этой программы — kitty, которое добавляет в putty новый функционал.

Программа Putty Windows для подключения к ssh Linux Подключение к серверу

Программа достаточно проста в эксплуатации.

Соединение SSH без пароля

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

Все поля можно оставить по-умолчанию.

Генерация ssh ключа на клиенте

Генерация ssh ключа на клиенте

Далее нужно скопировать сгенерированный ключ:

Сгенерированный ключ

Сгенерированный ключ

Теперь нужно зайти на сервер и скопировать полученный ключ в файл:

Теперь можно соединяться по ssh без пароля.

Подключение по ssh без пароля

Подключение по ssh без пароля

Теперь осталось сделать удобный alias на клиенте и соединяться с сервером одной простой командой.

Монтирование по ssh

Использование ssh не заканчивается выполнением команд на удаленном сервере. На основе протокола ssh базируются другие программы. Например sshfs — программа монтирования удаленной файловой системы с помощью ssh.

Создадим на сервере в домашней директории root тестовый файл:

Далее надо установить программу sshfs на клиенте:

Создадим тестовую директорию:

А теперь примонтируем домашнюю директорию root с сервера в нашу тестовую директорию на клиенте:

Монтирование по ssh

Монтирование по ssh

Чтобы размонтировать воспользуйтесь командой umount:

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

Что делать, если нужно скопировать файл на другой сервер? Можно, конечно, примонтировать удаленную файловую систему и воспользоваться обычной командой cp. Но что, если нужно сделать, к примеру, скрипт, который будет регулярно копировать файлы? В этом случае проще воспользоваться другой надстройкой над протоколом ssh — командой scp.

Из предыдущего пункта у нас остался файл fileonserver находящийся на сервере в домашней директории root (если его там нет — создайте). Скопировать его в домашнюю директорию клиента достаточно просто:

scp -P7777 root@192.168.1.80:/root/fileonserver

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

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

Параметр -P7777 указывает на порт 7777, который мы поменяли в самом начале.

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

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

Заключение

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

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

Служба SSH позволяет получить доступ к терминалу удаленного компьютера и выполнить там все необходимые вам команды. При своей простоте она достаточно безопасна, чтобы использоваться для решения серьезных коммерческих задач, так и задач обычных пользователей. В этой статье мы рассмотрим как выполняется установка SSH в Ubuntu 20.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

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

sudo systemctl enable sshd

ssh1

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

sudo systemctl disable sshd

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

ssh3

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

ssh2

Точно таким способом вы можете получить 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:

ssh4

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

ssh5

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

ssh6

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

sudo systemctl restart ssh

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

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

ssh -p 2222 localhost

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

sudo ufw allow 2222

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

sudo ufw allow 22

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

Выводы

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

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

Secure Shell, т. е. SSH – протокол, обеспечивающий защищённые соединения и передачу данных между двумя удалёнными компьютерами. Изначально создавался на замену таким системам как rlogin и rcp. Как понятно из полного названия протокола, система SSH позволяет соединяться и управлять удалённым узлом (компьютером, маршрутизатором и т. д.), при этом защищая весь передаваемый трафик с помощью высоконадёжного шифрования.
SSH широко применяется администраторами серверов для их настройки и управления, да и обычные продвинутые пользователи — владельцы, например, сайтов или виртуальных серверов активно используют SSH для подключения к своей учётной записи на хостинге и использования командной оболочки сервера.
Сразу после окончания разработки система SSH стала активно трансформироваться в закрытый коммерческий продукт в виде версии SSH2. Но благодаря сообществу GNU версии протокола SSH1 и SSH2 были реализованы в виде открытого и свободно распространяемого ПО openSSH. В Linux-системах используется именно этот метапакет.
Метапакет SSH базово включает в себя сервер SSH (sshd) в качестве програмы-демона, а также несколько утилит: ssh – удаленная регистрация и выполнение команд, scp – передача файлов и ssh-keygen – для генерации пар SSH-ключей.

Установка пакетов SSH

Как уже говорилось система ssh в Linux-системах распространяется в виде составного метапакета, поэтому для установки всех требуемых утилит ssh нужно выполнить всего одну команду:
В Ubuntu

После чего начнется процесс установки


Как видно, менеджер пакетов сам распознает все зависимые и связанные пакеты и установит их. Также, по завершению установки, автоматически будет запущен SSH-сервер в режиме демона. Это можно проверить командой:
$ systemctl status sshd
или:
$ service sshd status даст тот же вывод. Теперь сервер работает с базовыми настройками по-умолчанию.


Настройка SSH

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


Для адресов семейства IPv6 используется значение inet6.
Параметр ListenAddress позволяет задавать порты для отдельных сетевых интерфейсов:

Поскольку реализация openSSH позволяет работать с протоколами SSH1 и SSH2, то разумно отключить использование SSH1, т. к. эта версия является устаревшей. Работа по SSH1 крайне не рекомендуется: Protocol 2
Очень полезным является параметр, позволяющий проводить авторизацию и шифрование трафика с помощью специальных SSH-ключей:

Или же, в случае, если всё-таки необходимо использовать доступ по паролю, то обязательно нужно отключать авторизацию по пустому паролю:

Для указания разрешённых или запрещённых пользователей и групп служат директивы DenyUsers, AllowUsers, DenyGroups, и AllowGroups. Значениями для них являются списки имён, разделяемых пробелами, например:

Следует также отключать root-доступ:

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

Настройки для алиасов хранятся либо глобально в /etc/ssh/ssh_config, либо раздельно для пользователей в

/.ssh/config. Здесь нужно не спутать с ssh_config! Пример:

Для применения сделанных настроек необходим перезапуск SSH-сервера:

Настройка и использование клиента SSH
Для подключения по к серверу используется команда:

где user_name – имя пользователя в системе, host_name – имя узла, к которому производится подключение, например:

При этом утилита ssh запросит (в зависимости от настроек сервера) логин, пароль или парольную фразу для разблокировки приватного ключа пользователя.
В случае авторизации по ключу, должна быть предварительно сгенерирована пара SSH-ключей — открытый, который хранится на стороне сервера, обычно в файле .ssh/authorized_keys в домашнем каталоге пользователя, и закрытый — используется для авторизации клиента и хранится, как правило, в каталоге .ssh/ домашней директории пользователя. Открытый ключ представляет собой «цифровой слепок» закрытого ключа благодаря которому сервер «знает», кто «свой», а кто «чужой».
Для генерации ключей используется утилита ssh-keygen:

Утилита предложит выбрать расположение ключей (лучше всё оставить по-умолчанию), обычно это каталог

/.ssh/, ввести парольную фразу для закрытого ключа. После чего будут сгенерированы открытый ключ id_rsa.pub и закрытый — id_rsa. Теперь нужно скопировать открытый ключ, т. е. «слепок» закрытого на сервер. Проще всего этого можно добиться командой:

Теперь можно выполнить подключение командой ssh и запустить защищённый сеанс удалённого управления.
Важно заметить, что использование сгенерированных openSSH-ключей несовместимо с PPK-форматом, используемым по-умолчанию в таких комплексах как PuTTY. Поэтому необходимо конвертировать имеющиеся openSSH-ключи в формат PPK. Удобнее всего это делать с помощью утилиты PuTTY – puttygen.exe.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Понадобилось мне переустановить сервер, который как бы хостился у знакомых знакомых. Там был сильно устаревший Debian, а, самое главное, система стояла на обычных разделах без lvm и пространство было распределено очень не оптимально. Физический доступ получить к нему было практически нереально, местного админа попросить что-то сделать было можно, но занять это могло неделю. Виртуальный KVM у сервера был, но извне на него попасть было нельзя; у как бы хостера не было лишних IP-адресов, а внутрь его сети попасть было невозможно. Надо было переустановить сервер из-под работающей системы по ssh. Ага, давайте поменяем ротор у турбины не выключая, потом её перезапустим и будет она с новым ротором работать!

Первой идеей было создать chroot окружение на ram-диске и с него создать lvm и залить систему. Но не тут-то было, не дает система изменить таблицу разделов.

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

Как-то с коллегами обсуждали всякие деструктивные действия с системой (типа rm -rf /) и один из коллег сказал, что можно отключить scsi диск, на котором находится корневой раздел и система не пикнет. Это дало мне идею номер три, взять идею один, оторвать диск, вернуть диск и возвращенный диск будет уже другим, не тем который система не отдавала. Именно так и оказалось. А теперь по пунктам, как же все-таки переустановить систему без доступа к физической консоли.

Предупреждение! Надо понимать, что все, что мы будем делать — дорога в один конец, при ошибке мы теряем доступ к системе! Вполне возможно, что придется ехать 1500 километров и лезть в шахту, чтобы реанимировать сервер.

Будем считать, что IP нашей системы 192.168.56.102. Именно так было у меня на стенде. Плюс доступ к интернету через прокси:


Начинаем работу на исходной системе.

Заходим по ssh на сервер:


Создаем каталог и файловую систему для «Системы убийцы», монтируем её:


Ставим отличную утилиту debootstrap, которая разворачивает минимальную установку Debian, при помощи неё мы создадим chroot окружение:


Существуют аналогичные утилиты для Федоры и Centos, соответственно febootstrap и yumbootstrap, но я с ними не работал.


Первый аргумент — версия, второй — каталог установки, третий — репозиторий.

Бекапим самое необходимое:


Самое важное — настройки сетевых интерфейсов, без них не получится попасть в переустановленную систему.

Даем имя chroot-окружению:


Слово «Killer_system» будет показываться в приглашении bash. Это важная штука, без неё будет не понятно, где мы в данный момент находимся.

Переходим в новое окружение.

Монтируем полезные fs:


Еще раз ставим debootstrap:


Дальше мои заморочки: у дебиановского пакета openssh-server в рекомендованных пакетах есть пакет xauth, а у него в зависимостях всякие иксовые библиотеки. Я, как сторонник минимализма, не хочу, чтобы на сервере, где не было и не будет графики, ставились огрызки иксов. Поэтому ставим с ключиком --no-install-recommends:


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


И разрешаем доступ для root:


Можно не давать доступ root, а создать пользователя и дать ему sudo права, но тут я сознательно упрощаю.

Дальше надо задать пароль root, так как по умолчанию debootstrap не устанавливает никакие пароли:


Заходим в chroot окружение по ssh:


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

Такой трюк очень хорошо подходит, если мы уходим от хостера, а оставлять ему наши файлы очень не хочется (я знаю, паранойя). На этом этапе просто забиваем диски нулями, если хотим быстро:


Или случайными данными в несколько проходов, если хотим хорошо. Достоинство метода в том, что мы можем дождаться окончания работы dd и, при необходимости, повторить. Если же затирать диски непосредственно из боевой системы, то посмотреть на результаты работы dd мы уже не сможем.

Попробуем простой путь, удалим тома и разделы:

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

Мы пойдем другим путем. Проверяем, где у нас что находится:


Будем считать, что корневой раздел у нас на диске sda.

Затираем диск, чтобы ни в коем случае его не подцепил lvm.

Предупреждение! После этого момента возврата нет, даже следующий шаг не такой вредоносный. Задумаемся на минуту, проверим консоль, за которой сидим и оправдаем имя нашего chroot'а:


Проверяем, диск оторвался:


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


Проверяем, что вернулось:


Был sda, стал sdb, отлично.

Важный момент: на згрузочном диске необходимо создать один первичный раздел размером на весь диск и этот раздел отдать lvm'у для того чтобы на него смог встать grub. Все остальные диски можно отдавать lvm'у целиком не создавая систему разделов (pvcreate /dev/sdc). Создаем таблицу разделов и один первичный раздел типа 8e, Linux LVM:


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


Разворачиваем уже боевую систему на новое место на жестком диске:


Возвращаем на место резервные копии конфигов:


Теперь нас ждет новая система:

Обратите внимание, в приглашении командной строки теперь имя нового chroot окружения.

Монтируем файловые системы:


Ещё можно примонтровать эти файловые системы из родительского chroot'а:


Устанавливаем и конфигурируем openssh:

Устанавливаем пакеты, без которых не обойтись:


Да, я не могу жить без vim и ненавижу nano:


В принципе grub прописывается куда надо ещё при установке, но, всё же, для поддержки штанов и морального духа повторим:


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


В файле interfaces все должно быть в порядке, ведь как-то сеть у нас работала?


В конфиг apt'а добавляем информацию о прокси:


Добавляем строчку в /etc/hosts:


Размонтируем файловые системы:


И выходим из chroot'а:


Размонтируем файловые системы:


Если размонтировать /dev не удалось, то не удастся размонтировать и /target, но это не страшно.

Если удалось, то делаем так:


Если нет, то так:


Эти команды сбросят дисковые кеши и перемонтируют корневую файловую систему в read only. После этого можно перегружаться.

Тут-то нас ждет сюрприз от всеми любимого systemd! Он знает, что мы в chroot и не дает перегрузиться! Google дает советы выйти из chroot, но нам-то выходить некуда. Но на помощь приходит Magic SysRq!

Активируем SysRq (он, скорее всего, активирован, но нам же надо убедиться?).


Барабанная дробь, тревожное ожидание, неужели мы что-то забыли, и сервер не поднялся?


Ура! Мы в новой системе!

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

В наши дни SSH стал методом по умолчанию для доступа к удаленному серверу Linux.

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

В этом руководстве для начинающих вы узнаете:

  • Основная концепция SSH
  • Настройка SSH-сервера (в системе, к которой вы хотите получить удаленный доступ)
  • Подключение к удаленному серверу через SSH с клиентской машины (вашего персонального компьютера)

Основы SSH

Прежде чем вы увидите какой-либо процесс настройки, будет лучше пройти через базовую концепцию SSH.

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

OpenSSH - один из самых популярных инструментов с открытым исходным кодом, который обеспечивает функциональность SSH в Linux, BSD и Windows.

Для успешной настройки SSH вам необходимо:

  • Установите компоненты сервера SSH на машине, которая действует как сервер. Это обеспечивается пакетом openssh-server.
  • Установите клиентский компонент SSH на машину, с которой вы хотите подключиться к удаленному серверу. Это обеспечивается пакетом openssh-client, и с ним предустановлено большинство дистрибутивов Linux и BSD.

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

Как правило, у вас есть выделенная система, работающая в качестве сервера. Например, Raspberry Pi с сервером Ubuntu. Вы включаете SSH на Raspberry Pi, чтобы вы могли контролировать и управлять устройством со своего основного персонального компьютера, используя SSH в терминале.

Обладая этой информацией, давайте посмотрим, как настроить SSH-сервер в Ubuntu.

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

Настроить SSH не сложно, для этого нужно всего несколько шагов:

  • Пользователь с привилегиями sudo на серверной машине
  • Подключение к Интернету для загрузки необходимых пакетов.

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

Шаг 1. Установите необходимые пакеты

Начнем с открытия окна терминала и ввода необходимых команд.

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

Пакет, необходимый для запуска SSH-сервера, предоставляется компонентом openssh-server из OpenSSH:


Шаг 2: Проверка статуса сервера

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

Вы также можете использовать команды systemd:

Вы должны увидеть что-то подобное с выделенным словом Active. Нажмите q, чтобы вернуться в командную строку.


Если в вашем случае сервис не работает, вам нужно будет активировать его следующим образом:

Шаг 3. Разрешение SSH через брандмауэр

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

Чтобы настроить UFW так, чтобы он разрешал требуемый доступ, вам необходимо выполнить следующую команду:

Статус UFW можно проверить, запустив sudo ufw status.

На данном этапе наш SSH-сервер запущен и просто ожидает соединения от клиента.

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

В вашей локальной системе Linux уже должен быть установлен клиент SSH. Если нет, вы всегда можете установить его, используя следующую команду в Ubuntu:

Чтобы подключиться к вашей системе Ubuntu, вам необходимо знать IP-адрес компьютера и использовать команду ssh, например:

Измените username на своего фактического пользователя в системе и address на IP-адрес вашего сервера Ubuntu.

Если вы не знаете IP-адрес своего компьютера, вы можете ввести ip a в терминале сервера и проверить вывод. У вас должно получиться что-то вроде этого:

Использование «ip a» для поиска IP-адреса

Использование «ip a» для поиска IP-адреса

Как видно здесь, мой IP-адрес 192.168.2.54. Давайте попробуем подключиться, используя формат имя username@adress.

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

Первое подключение к серверу

Первое подключение к серверу

Сразу же SSH сообщает вам, что хост был добавлен навсегда, а затем запрашивает пароль, назначенный для имени пользователя. Введите пароль и еще раз нажмите Enter.

Хост добавлен, теперь введите пароль

Хост добавлен, теперь введите пароль

И вуаля! Вы войдете в свою систему Ubuntu удаленно!


Теперь вы можете работать в терминале удаленной системы в обычном режиме.

Закрытие SSH-соединения

Чтобы закрыть соединение, вам просто нужно ввести exit, и оно сразу же закроет его, не запрашивая подтверждения.

Закрытие соединения

Закрытие соединения

Остановка и отключение SSH в Ubuntu

Если вы хотите остановить службу SSH, вам понадобится эта команда:

Это остановит службу, пока вы ее не перезапустите или пока система не будет перезагружена. Чтобы перезапустить его, введите:

Теперь, если вы хотите отключить его запуск во время загрузки системы, используйте это:

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

Другие клиенты SSH

Инструмент ssh включен в большинство систем * nix, от Linux до macOS, но это не единственные существующие варианты, вот пара клиентов, которые можно использовать из других операционных систем:

    - это бесплатный SSH-клиент для Windows с открытым исходным кодом. Он полон функций и очень прост в использовании. Если вы подключаетесь к своей машине Ubuntu со станции Windows, PuTTY - отличный вариант. - потрясающий инструмент для пользователей Android. Если вы в пути и вам нужен мобильный клиент для подключения к вашей системе Ubuntu, я настоятельно рекомендую попробовать JuiceSSH. Он существует уже почти 10 лет, и его можно использовать бесплатно.
  • И, наконец, Termius доступен для Linux, Windows, macOS, iOS и Android. У него есть бесплатная версия, а также несколько дополнительных опций. Если у вас много серверов и вы работаете с командами, использующими общие соединения, Termius - хороший вариант для вас.

Заключение

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

Читайте также: