Как пользоваться протоколом SSH в Ubuntu: установка и настройка

Secure Shell (SSH) — это сетевой протокол, используемый для безопасного соединения между клиентом и сервером. Каждое взаимодействие между сервером и клиентом зашифровано.

Что такое SSH?

Если вам интересно что такое SSH — это специальная так называемая полностью «Безопасная оболочка». Использует сетевой протокол прикладного уровня и туннелирование через TCP-соединений. Если говорить намного проще, то задача заключается в безопасной передаче файлов через специальные протоколы даже в незащищенной среде. Этот протокол позволяет довольно быстро шифровать данные и пароли. К тому же есть вариации при выборе способа шифрования, что делает его еще лучше. В принципе этот протокол можно назвать лучшим среди конкурентов.

Что представляет собой протокол SSH

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

Что представляет собой протокол SSH

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

Настройте сервер SSH

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

sudo cp -a /etc/ssh/sshd_config /etc/ssh/sshd_config_backup

Теперь используйте следующую команду для редактирования файла:

sudo nano /etc/ssh/sshd_config

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

# What ports, IPs and protocols we listen for Port 2122

Для повышения безопасности вы можете дополнительно настроить еще несколько параметров. Первый есть PermitRootLogin. Установите это, чтобы noзапретить кому-либо входить в систему root, что значительно снижает вероятность серьезных изменений со стороны хакеров.

# Authentication: LoginGraceTime 120 PermitRootLogin no

Второе необязательное изменение для повышения безопасности – перечисление пользователей, которым разрешен удаленный доступ к системе через SSH. Для этого добавьте следующую строку в конец sshd_configфайла:

AllowUsers user1 user2

Настройте сервер SSH

Замените user1и user2на фактические имена пользователей.

Единственное, что вы можете пожелать, X11Forwardingэто установить «да». Это позволит вам запускать программное обеспечение на удаленном сервере в локальной системе. Если локальной системой является Windows, которая не поставляется с, X Serverвы можете использовать бесплатные программы, такие как Xming.

После установки SSH-сервера и внесения любых изменений в файл конфигурации (sshd_config) вам придется перезапустить службу. Используйте следующую команду для перезапуска SSH:

sudo service ssh restart

Если вы настроили псевдонимы bash, как описано в этом посте, вы можете использовать ярлыки (например sshrestart) для перезапуска вашего сервера OpenSSH.

Читайте также:  Инструкция по очистке реестра в компьютере

Безопасная оболочка Ubuntu

Итак, установите SSH-сервер в вашей системе Ubuntu и начните пользоваться удаленным доступом. Теперь вы можете получить доступ к системным папкам и файлам через SFTP с помощью таких программ, как FileZilla.

Источник записи:

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

Чтобы подключиться к домашней машине с Ubuntu через Интернет, вам необходимо знать свой общедоступный IP-адрес и настроить маршрутизатор на прием данных через порт 22 и их отправку в систему Ubuntu, где работает SSH.

Чтобы определить общедоступный IP-адрес компьютера, к которому вы пытаетесь подключиться по SSH, просто перейдите по следующему URL-адресу: .

Когда дело доходит до настройки переадресации портов , каждый маршрутизатор имеет свой способ настройки переадресации портов. Чтобы узнать, как настроить переадресацию портов, обратитесь к документации маршрутизатора. Короче говоря, вам нужно ввести номер порта, на который будут выполняться запросы (порт SSH по умолчанию — 22), и частный IP-адрес, который вы нашли ранее (с помощью команды ip a ) машины, на которой работает SSH.

После того, как вы нашли IP-адрес и настроили маршрутизатор, вы можете войти в систему, набрав:

ssh [email protected]_ip_address

Если вы открываете свою машину для доступа в Интернет, рекомендуется принять некоторые меры безопасности. Самый простой — настроить маршрутизатор на прием трафика SSH на нестандартный порт и пересылку его на порт 22 на машине, на которой запущена служба SSH.

Вы также можете настроить аутентификацию на основе ключа SSH и подключиться к компьютеру с Ubuntu без ввода пароля.

Шаг — Аутентификация на вашем сервере Ubuntu с помощью ключей SSH

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

Базовый процесс выглядит аналогично:

ssh [email protected]_host

Если вы подключаетесь к этому хосту первый раз (если вы используете указанный выше последний метод), вы сможете увидеть следующее:

OutputThe authenticity of host ‘ ()’ can’t be established. ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe. Are you sure you want to continue connecting (yes/no)? yes

Это означает, что ваш локальный компьютер не распознает удаленный хост. Введите «yes» и нажмите ENTER, чтобы продолжить.

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

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

Заключение

В данном обзоре мы рассмотрели первоначальную настройку и оптимизацию Ubuntu Так же рекомендуем ознакомиться со статьей «Как обеспечить безопасность Linux сервера» и другими статьями нашего блога, в котором рассмотрены вопросы администрирования операционных систем и различных приложений. Для наших клиентов облачного VPS хостинга, мы создали готовый шаблон, с помощью которого вы можете установить Ubuntu в автоматическом режиме и уже несколько минут приступить к работе. Наша круглосуточная служба технической поддержки поможет с его базовой настройкой, если у вас возникнут сложности.

Дата:

Твитнуть

Рекомендуемые статьи по теме:
  • Команда top — учимся наблюдать за процессами в Linux
  • Настройка Linux firewall netfilter+ipset: Базовая настройка
  • Настройка кеширования на VPS и выделенных серверах
  • Использование SSHFS для монтирования удаленной файловой системы
  • Установка почтового сервера iRedMail

Авторам статьи важно Ваше мнение. Будем рады его обсудить с Вами: Please enable JavaScript to view the comments powered by Disqus. comments powered by Disqus

Работа с текстом

Парочка полезных команд для взаимодействия с любыми видами текстов на сервере через SSH.

cat — показывает текст из выбранного файла. В качестве аргумента передаем этой утилите текстовый документ, и cat выведет в консоль его содержимое. Синтаксис:

cat путь до файла, содержимое которого надо осмотреть

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

cat ~/Desktop/

head — это «голова». Она работает по схожему с cat принципу. Отображает текст из файлов, где он имеется. Разница заключается в количестве отображаемого контента. Пользователь сам выбирает, сколько строчек текста вывести на экран, поставив аргумент -n. Команда head -n 4 ~/Documents/ покажет только первые четыре строки документа из папки Documents.

tail — это «хвост». Работает, как head, но с противоположной стороны. Команда tail -n 8 ~/Documents/ покажет только первые восемь строк документа из папки Documents.

touch — одна из множества команд для SSH, которую используют не по назначению. У нее весьма специфичная задача по изменению времени последнего открытия отдельных элементов файловой системы. Но ее быстро перепрофилировали чуть ли не в стандартный метод создания файлов. touch ~/Desktop/ создаст HTML-документ с именем Timeweb на рабочем столе.

vi — используя с дополнительными аргументами, можно создавать новые текстовые файлы. Например vi /путь до директории, где нужно создать новый текстовый файл/. Или же редактировать уже существующие. Чтобы изменить содержимое какого-нибудь файла в домашней папке, надо ввести: vi /home/имя учетной записи/. Альтернативой vi может служить nano. Более современный и лояльный к новичкам редактор. К сожалению, может отсутствовать в системе по умолчанию и требовать установки.

wc путь до файла — показывает количество символов, количество строк и слов в выбранном текстовом документе.

grep — ищет конкретный кусочек текста в большом документе или распечатке из консоли. Чтобы дать понять, как он работает, покажу пример. Буду искать слово «немного» в файле , лежащем у меня на рабочем столе. Сделаю это одной командой cat ~/Desktop/ | grep немного. Перед grep я использовал cat, чтобы вывести содержимое документа в консоль, а потом отфильтровать.

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

diff

Шаг — Отключение аутентификации по паролю на вашем сервере

Если вам удалось войти в ваш удалённый аккаунт на удалённом хосте по SSH без ввода пароля, вы успешно настроили аутентификацию по ключу SSH для вашего аккаунта. Однако возможность входить на сервер с использованием пароля всё есть активна, что означает, что ваш сервер уязвим для атак с перебором пароля (brute-force attacks).

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

Как только вы убедитесь, что аккаунт вашего удалённого пользователя имеет привилегии администратора, войдите на сервер с использованием аутентификации по ключу SSH, используя либо аккаунт root, либо аккаунт пользователя с привилегиями sudo. Далее откройте конфигурационный файл демона SSH:

  • sudo nano /etc/ssh/sshd_config

Внутри файла найдите директиву PasswordAuthentication. Она может быть закомментирована. Раскомментируйте её при необходимости и установите её значение в “no”. Это отключит возможность входа на сервер по паролю.

/etc/ssh/sshd_config

… PasswordAuthentication no …

Сохраните и закройте файл нажав CTRL + X, затем Y для подтверждения сохранения файла, а далее ENTER для выхода из текстового редактора nano. Для применения внесённых изменений нам необходимо перезапустить сервис sshd:

  • sudo systemctl restart ssh

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

  • ssh username@remote_host

После проверки работоспособности SSH соединения, вы можете закрыть все открытые сессии с сервером.

Теперь демон SSH на вашем сервере с Ubuntu работает только с ключами SSH. Аутентификация по паролю полностью отключена.

Установка и настройка 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 Сервера в Линукс

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

$ sudo apt-get install ssh

В CentOS

$ yum -y install openssh-server openssh-clients

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

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

$ service sshd status даст тот же вывод. Теперь сервер работает с базовыми настройками по-умолчанию.

Настройка SSH

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

cat /etc/ssh/sshd_config

В первую очередь следует обратить внимание на следующие параметры: Port, AddressFamily, ListenAddress.

Установка и настройка SSH Сервера в Линукс

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

Примечание: для задания активации параметра необходимо раскомментировать соответствующую строку — убрать символ «#» в её начале.

Второй параметр задаёт семейство используемых IP-адресов — IPv4 и IPv6. Если, к примеру, используются только адреса IPv4, то очень рекомендуется установить для параметра

AddressFamily значение inet: AddressFamily inet

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