Установка

Ssh установка: Установка SSH-Server в Ubuntu

Содержание

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

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

Устанавливаем SSH-server в Ubuntu

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

Шаг 1: Загрузка и установка SSH-server

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

  1. Запустите консоль через меню или зажав комбинацию Ctrl + Alt + T.
  2. Сразу же начните скачивание файлов сервера с официального репозитория. Для этого потребуется ввести sudo apt install openssh-server, а затем нажать на клавишу Enter.
  3. Поскольку мы используем приставку sudo (выполнение действия от имени суперпользователя), вам потребуется ввести пароль от своей учетной записи. Учтите, что символы при вводе не отображаются.
  4. Вы будете уведомлены о скачивании определенного объема архивов, подтвердите действие, выбрав вариант Д.
  5. По умолчанию клиент устанавливается вместе с сервером, но не лишним будет убедиться в его наличии, попытавшись инсталлировать его повторно с помощью sudo apt-get install openssh-client.

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

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

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

  1. Запустите консоль и пропишите там sudo systemctl enable sshd, чтобы добавить сервер в автозагрузку Ubuntu, если вдруг этого не случилось автоматически после установки.
  2. Если вам не нужно, чтобы инструмент стартовал вместе с ОС, удалите его с автозапуска путем ввода sudo systemctl disable sshd.
  3. Теперь проверим, как производится подключение к локальному компьютеру. Примените команду ssh localhost (localhost — адрес вашего локального ПК).
  4. Подтвердите продолжение подключения, выбрав вариант yes.
  5. В случае успешной загрузки вы получите примерно такую информацию, как видите на следующем скриншоте. Проверить необходимо и подключение к адресу 0.0.0.0, который выступает в роли выбранного сетевого IP по умолчанию для других устройств. Для этого введите соответствующую команду и нажмите на Enter.
  6. При каждом новом соединении необходимо будет его подтверждать.

Как видите, команда ssh используется для подключения к любому компьютеру. Если у вас появилась надобность соединиться с другим устройством, просто запускайте терминал и вводите команду в формате ssh имя_пользователя@ip_адрес.

Шаг 3: Редактирование файла конфигурации

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

  1. Первоочередно сохраните резервную копию файла конфигурации, чтобы в случае чего обратиться к нему или восстановить исходное состояние SSH. В консоль вставьте команду sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.original.
  2. Затем вторую: sudo chmod a-w /etc/ssh/sshd_config.original.
  3. Запуск файла настроек выполняется через sudo vi /etc/ssh/sshd_config. Сразу же после ввода он будет запущен и вы увидите его содержание, как показано на скриншоте ниже.
  4. Здесь вы можете изменять используемый порт, что всегда лучше сделать для обеспечения безопасности подключения, далее может быть отключен вход от имени суперпользователя (PermitRootLogin) и включена активация по ключу (PubkeyAuthentication). По завершении редактирования следует нажать на клавишу : (Shift + ; на латинской раскладке) и добавить букву w, чтобы сохранить изменения.
  5. Выход из файла осуществляется таким же образом, только вместо w используется q.
  6. Не забудьте перезапустить сервер, введя sudo systemctl restart ssh.
  7. После изменения активного порта его нужно зафиксировать в клиенте. Делается это путем указания ssh -p 2100 localhost, где 2100 — номер замененного порта.
  8. Если у вас настроен брандмауэр, там также требуется провести замену: sudo ufw allow 2100.
  9. Вы получите уведомление, что все правила были обновлены.

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

Шаг 4: Добавление ключей

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

  1. Откройте консоль и создайте новый ключ клиента, введя ssh-keygen -t dsa, а затем присвойте название файлу и укажите сам пароль для доступа.
  2. После этого будет сохранен публичный ключ и создастся секретное изображение. На экране вы увидите его вид.
  3. Осталось только скопировать созданный файл на второй компьютер, чтобы отключить подключение через пароль. Используйте команду ssh-copy-id [email protected], где [email protected] — имя удаленного компьютера и его IP-адрес.

Осталось только перезапустить сервер и проверить его корректность работы через открытый и секретный ключ.

На этом процедура установки SSH-сервера и его основная настройка завершена. Если вы вводите все команды правильно, никаких ошибок при выполнении задачи возникнуть не должно. В случае каких-либо проблем с подключением после настройки попробуйте убрать SSH из автозагрузки, чтобы решить неполадку (читайте об этом в Шаге 2).

Мы рады, что смогли помочь Вам в решении проблемы.

Опишите, что у вас не получилось.
Наши специалисты постараются ответить максимально быстро.

Помогла ли вам эта статья?

ДА НЕТ

Установка и настройка SSH на сервере с Ubuntu

В этой статье мы создадим виртуальную машину с Ubuntu 18.04 LTS 64-bit и выполним настройки для безопасного взаимодействия с сервером.

SSH (Secure Shell) — протокол с шифрованием для безопасного обмена данными между элементами ИТ-инфраструктуры. Чаще всего SSH используется для управления серверами с операционными системами семейства Linux и различным сетевым оборудованием.

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

В нашем примере используется виртуальный сервер с фиксированной конфигурацией в виде 1 ядра CPU, 1 Гб оперативной памяти, 10 Гб пространства на жестком диске и операционной системой Ubuntu 18.04 LTS 64-bit.

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

После успешного создания сервера, можно запускать консоль и настроить подключение по SSH. В Ubuntu за это отвечает утилита OpenSSH. В статье мы рассмотрим настройку доступа по ключам, настройку firewall, отключение аутентификации по паролю и проделаем некоторые другие вещи.

Как установить OpenSSH

OpenSSH — это бесплатный SSH-сервер, дающий возможность интерактивного управления сервером. Для установки SSH на сервер воспользуемся встроенным в Ubuntu пакетным менеджером apt:

# sudo apt install openssh-server -y

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

Теперь добавим SSH-сервер в автозагрузку. При следующем запуске сервера, операционная система выполнит автоматический запуск SSH-сервера. Как и в случае с другими сервисами systemd позволяет управлять параметрами запуска, автозагрузки и рестарта демона OpenSSH. Включим автозапуск:

# sudo systemctl enable ssh

В результате получим:

Проверим работоспособность утилиты:

# ssh localhost

И убедимся, что всё корректно работает:

Как настроить SSH

Настройка SSH на Ubuntu необходима для улучшения защищенности системы. Например, можно отключить возможность входа от имени пользователя root или изменить порт подключения со стандартного 22 на произвольный. Лучше использовать порты из верхнего диапазона (50000-65000). Напомним, что в стеке протоколов TCP/IP доступно 65536 портов.

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

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

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

# sudo vi /etc/ssh/sshd_config

Раскомментируем строку Port 22 и изменим значение на 55555. Но мы должны вас предостеречь, боты прежде всего сканируют порты с одинаковыми цифрами, поэтому в промышленных средах лучше использовать номер порта с отличными друг от друга цифрами.

Далее нужно отключить возможность входа на сервер учетной записи суперпользователя (root) и добавить возможность входить через ключи. Для этого изменим значения параметров PermitRootLogin на no и PubkeyAuthentication на yes:

После этого следует перезагрузить демон SSH. Соединение при этом будет разорвано и подключиться можно будет через новый порт и пользовательскую учетную запись (она должны быть предварительно создана).

sudo systemctl restart ssh

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

ssh -p 55555 [email protected]

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

Как создать пару ключей RSA

Еще один способ аутентификации на сервере — пара ключей RSA: открытый и закрытый. Открытый хранится на сервере, к которому будет выполняться подключение, а закрытый на удаленном компьютере (или другом сервере) откуда выполняется подключение.

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

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

# ssh-keygen -t rsa

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

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

Как скопировать открытый ключ на сервер

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

# ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

В этом примере 95.213.154.235 — это IP-адрес удаленного сервера. После ввода пароля, ключ копируется папку .ssh домашней директории пользователя.

# ssh [email protected]

Вывод обеих команд на скриншоте ниже.

Как пройти аутентификацию на сервере через созданный ключ

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

# ssh [email protected]

Если подключение по SSH будет успешным — все настройки были выполнены корректно.

Как выполнить отключение аутентификации по паролю

Для отключения возможности входа по паролю необходимо в файле /etc/ssh/sshd_config отредактировать значение PasswordAuthentication и присвоить no.

После изменения настроек перезагружаем службу SSH:

# sudo systemctl restart ssh

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

При этом подключение при помощи ключа будет успешным.

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

Как настроить стандартный firewall

В Ubuntu есть встроенный фаервол Netfilter, который может управляться как непосредственно вызовом утилиты iptables с параметрами так и специальной утилитой UFW (Uncomplicated Firewall). Мы разберем оба варианта.

Iptables на нашем демо-стенде уже установлен, но если в вашем дистрибутиве его нет — можно воспользоваться пакетным менеджером apt:

# sudo apt-get install iptables

При работе с iptables можно настроить три типа правил: INPUT — для входящих соединений, OUTPUT — для исходящих и forward для транзитных (используется для маршрутизаторов). Для сервера актуальны первые два.

При обработке пакетов возможно выполнение следующих действий: ACCEPT — разрешить прием пакета, DROP — удалить пакет, REJECT — отклонить пакет и отправил уведомление об отклонении отправителю, LOG — записать пакет в лог и QUEUE — отправить пакет приложению.

В iptables доступны следующие функции управления:

  • A — добавить правило в цепочку;
  • С — проверить все правила;
  • D — удалить правило;
  • I — вставить правило с нужным номером;
  • L — вывести все правила в текущей цепочке;
  • S — вывести все правила;
  • F — очистить все правила;
  • N — создать цепочку;
  • X — удалить цепочку;
  • P — установить действие по умолчанию.

Например, чтобы посмотреть настроенные правила можно выполнить команду

# sudo iptables -L

Теперь попробуем заблокировать все пакеты от узла 10.10.10.10:

# sudo iptables -A INPUT -s 10.10.10.0/24 -j DROP

При помощи комбинаций перечисленных выше опций можно настроить любую требуемую логику работы с сетевыми пакетами.

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

# sudo apt install ufw -y

После установки можно начинать работать с правилами. Разрешим все исходящие соединения и запретим все входящие:

# sudo ufw default deny incoming
# sudo ufw default allow outgoing

В выводе увидим:

В примерах выше мы меняли порт для доступа по SSH на 55555. Создадим правило для доступа по этому порту:

# sudo ufw allow 55555

В выводе получим:

Теперь включим сам фаервол.

# sudo ufw enable

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

После включения фаервола, проверим его настройки командой:

# sudo ufw status verbose

В выводе увидим:

Дополнительно можно настроить доступ с определенного IP-адреса (или диапазона адресов), на определенный порт.

# sudo ufw allow from 95.213.154.235 to any port 55555

При помощи правил UFW можно также применять правила к определенным сетевым интерфейсам сервера.

Как настройки подключения по SSH влияют на безопасность

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

Первая настройка — проверка соответствия DNS-имени IP-адресу клиента. За это отвечает параметр UseDNS.

# UseDNS yes

Следующий шаг к безопасности — запрет пустых паролей. Задается в параметре PermitEmptyPasswords.

# PermitEmptyPasswords no

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

# MaxAuthTries 3

Еще один подход к ограничению несанкционированных подключений — задание пользователей и групп, которым разрешен доступ по SSH. Они перечисляются в параметрах AllowUsers и AllowGroups.

# AllowUsers User1, User2, User3
# AllowGroups Group1, Group2, Group3

Дополнительно, можно задать время, в течении которого система ожидает от пользователя ввода пароля. По умолчанию это две минуты, но лучше уменьшить до 30 секунд.

# Login GraceTime 30

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

# ClientAliveInterval 300

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

Нельзя не упомянуть про эффективный инструмент борьбы с попытками аутентификации — утилите fail2ban. Это сервис, который читает лог безопасности и блокирует злоумышленников по IP. Штатно устанавливается при помощи apt:

# sudo apt install fail2ban

После установки появляются два конфигурационных файла: /etc/fail2ban/fail2ban.conf и /etc/fail2ban/jail.conf. Первый отвечает за настройки запуска fail2ban, а второй за настройки защиты конкретных сервисов.

Заключение

Мы рассказали об основных настройках протокола SSH, которые помогут уберечь Ubuntu-сервер от несанкционированного доступа. Особенно важно их использовать при расположении сервера в публичных облаках с публичным IP-адресом. На скриншоте ниже вы видите журнал безопасности системы, на которой мы проводили перечисленные в этой статье настройки. В нем видно, что попытки авторизаций под разными пользователями (root, system и другими) происходят регулярно.

Перечисленных в этой статье настроек достаточно для обеспечения базовой безопасности сервера и предотвращения его вовлечения в бот-сети.

Установка и настройка SSH — Ubuntu

» Вы начинающий админ и хотите, например, поднять свой веб сервер. Идете в интернет, находите подходящую Вам статью и вперед! Давайте обратим внимание на один Важный момент, практически во всех этих статьях дается минимум команд для запуска необходимых служб и сервисов. Хорошо — заработало! А все ли Вы сделали для того, чтобы работать не перестало? Используете SSH через интернет? Почему никто в своих статьях не освещает проблем, которые могут получить новоиспеченные админы с таким подходом к настройке сервера, ведь именно для новичков и написаны статьи. Для того, чтобы Вы вовремя обратили внимание на вопрос безопасности, я обязательно буду делать пометки и ссылки в своих статьях на данный материал. Предупрежден – вооружен! «

Итак, SSH (secure shell) – безопасный сервер терминалов, предоставляет удаленный доступ к системе. Безопасный, т.к. весь трафик между клиентом и сервером шифруется. А так ли он безопасен с настройками по умолчанию? Если Вы имеете сервер с возможностью подключения по SSH через интернет, обязательно найдутся желающие подобрать пароль для входа. Думаю, не стоит объяснять, что возможный злоумышленник сможет получить практически неограниченный доступ к системе.

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


 

Установка SSH сервера в Ubuntu.

Установка SSH сервера в Ubuntu выполняется следующей командой:

sudo apt-get install ssh openssh-server

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

sudo service ssh stop | start | restart

Основной файл конфигурации SSH — сервера — файл /etc/ssh/sshd_config, доступный для чтения или редактирования только супер пользователю (root). Для применения изменений необходимо перезапустить ssh-сервер .

Настройки безопасности SSH сервера.

Протокол по умолчанию.

Опять же в современных дистрибутивах по умолчанию реализуется протокол SSh3. Если в Вашем случае указано нечто вроде:

Protocol 2,1

Необходимо оставить только 2:

Protocol 2

Использование небезопасного протокола SSh2 не рекомендуется.


 

Авторизация супер пользователя root.

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

По умолчанию в последних релизах Ubuntu, доступ пользователя root  через SSH ограничен.

PermitRootLogin without-password

Позволяет авторизоваться пользователю root по ключам, при этом авторизацию по паролю запрещает.

Я рекомендую Вам изменить параметр на no:

PermitRootLogin no

С такими настройками пользователь root  не сможет авторизоваться по SSH.

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

Еще немного о root  в Ubuntu, созданный по умолчанию пользователь (при установке системы) может решать все административные задачи через sudo. Активировать пользователя root для доступа к системе мне кажется не обоснованным решением.


 

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

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

AllowUsers user1 user2

Также Вы можете указать необходимую группу, например administrators:

AllowGroups administrators

 

Запретите доступ с «пустыми» паролями.

Вы должны явно запретить удаленный доступ с использованием пустых паролей:

PermitEmptyPasswords no

 

Изменение стандартного порта.

SSH по умолчанию работает на 22 порту. Соответственно основная масса атак будет направлена именно на этот порт, далее используя подбор имени пользователя и пароля, будут происходить попытки получить доступ к серверу. Мы уже исключили самое известное имя пользователя из базы возможного злоумышленника (root) и разрешили доступ только определенным пользователям, теперь сократим количество возможных атак (боты, ищущие уязвимости на стандартных портах), изменив порт, используемый по умолчанию (новый порт должен быть свободен!).

Port 22

Изменим, к примеру, на:

Port 2220

Стоит понимать, что изменение порта никак не поможет Вам при целенаправленной атаке brute-force (подбор пароля). Злоумышленник может, например, пройтись сканером портов по IP адресу, на котором распложен Ваш сервер, в результате он получит список всех открытых портов.

Также помните, что теперь для подключения к серверу помимо IP адреса Вам нужно указать и номер порта.


 

Авторизация на основе SSh3 RSA – ключей.

Действительно рабочим вариантом защиты от перебора является использование для аутентификации SSh3 RSA-ключей.  При таком способе пользователь генерирует пару ключей, из которой один ключ является секретным, а другой публичным. Публичный ключ находится  на сервере и служит для проверки идентичности пользователя. Плюс ко всему связку ключ – публичный ключ можно обезопасить парольной фразой, повысив криптостойкость  авторизации. Логика проста, не используете для авторизации пароль – подбирать нечего!

Заходим в систему под тем пользователем, которому будем настраивать доступ по SSH к серверу.

Сгенерируем RSA ключ длинной 4096, Вам будет предложено указать место хранения, оставим по умолчанию (/home/UserName/.ssh/id_rsa), также будет предложено задать пароль на создаваемый ключ. Если пароль не указывать, то во время аутентификации на сервере по сертификату вводить его не придется, это менее надежно. Рекомендую Вам указать пароль:

ssh-keygen -t rsa -b 4096

В указанной директории будет создана пара ключей:

id_rsa.pub — публичный

id_rsa – приватный

Проверим, созданы ли файлы:

cd ~/.ssh
ls -al

Установим права на папку и файлы:

sudo chmod 0700 ~/.ssh/
sudo chmod 0600 ~/.ssh/id*

Приватный ключ необходимо передать клиенту защищенным образом и уда

Установка SSH-сервера на Ubuntu 18.04 LTS. Категория: ОС Linux • Разное


В основном, SSH реализован в виде двух приложений — SSH-сервера и SSH-клиента. В Ubuntu используется свободная реализация клиента и сервера SSH — OpenSSH. При подключении клиент проходит процедуру авторизации у сервера и между ними устанавливается зашифрованное соединение. OpenSSH сервер может работать как с протоколом ssh2, так и с протоколом ssh3. Протокол ssh2 считается небезопасным, поэтому его использование не рекомендуется.

$ sudo apt install openssh-server


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

$ sudo systemctl start|stop|restart ssh


Разрешить или запретить запуск службы при загрузке системы:

$ sudo systemctl enable|disable ssh


Проверить, что служба ssh.service работает:

$ systemctl is-active ssh


Для службы ssh.service есть алиас sshd.service, что может вызывать некторые проблемы. Например, удалим службу sshd.service из автозагрузки, используя псевдоним:

$ sudo systemctl disable sshd
Removed /etc/systemd/system/multi-user.target.wants/ssh.service.
Removed /etc/systemd/system/sshd.service.


А после этого попробуем добавить обратно:

$ sudo systemctl enable sshd
Failed to enable unit: Unit file sshd.service does not exist.


Но это легко исправить, обратившись по имени:

$ sudo systemctl enable ssh
Synchronizing state of ssh.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable ssh
Created symlink /etc/systemd/system/sshd.service → /lib/systemd/system/ssh.service.


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

$ ssh [email protected]


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

The authenticity of host 'ubuntu-wordpress (192.168.110.12)' can't be established.
ECDSA key fingerprint is SHA256:/HFkWvnH6OhtcZlcyz0EEHisiIP84WlpFy25uZ3B1UA.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'ubuntu-wordpress,192.168.110.12' (ECDSA) to the list of known hosts.


После нашего согласия все-таки подключиться (yes), ключ хоста будет добавлен в файл ~/.ssh/known_hosts. И при следующих подключениях этого предупреждения больше не будет.

Файл конфигурации


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

$ sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.default
$ sudo nano /etc/ssh/sshd_config


Первым делом желательно сменить порт, на котором работает ssh-сервер:

Port 2222



Во-вторых, запретить вход от имени суперпользователя:

PermitRootLogin no



Настоятельно рекомендуется отключить аутентификацию по паролю (после настройки аутентификации по ключу):

PasswordAuthentication no



Если аутентификация по паролю все-таки нужна — запрещаем авторизацию с пустым паролем:

PasswordAuthentication yes
PermitEmptyPasswords no

Аутентификация по ключу


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

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


Для генерации ключей на клиенте предназначена команда:

$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/Evgeniy/.ssh/id_rsa): ~/.ssh/rsa-vm-wp
Enter passphrase (empty for no passphrase): Enter
Enter same passphrase again: Enter
Your identification has been saved in C:/Users/Evgeniy/.ssh/rsa-vm-wp.
Your public key has been saved in C:/Users/Evgeniy/.ssh/rsa-vm-wp.pub.
The key fingerprint is:
SHA256:qreJu/Sto0HZ3e9cJBcyKJl0Fb/cOBL9l6ozwtbdPAI [email protected]
The key's randomart image is:
+---[RSA 2048]----+
|        . ..o.   |
|       . + . o   |
|        + . + +  |
|     o . o   = *.|
|    o . S . o B.+|
|   .   .   E =...|
|    o . . . +.+  |
|   . =oo + *.+ + |
|    *==+o ..= . .|
+----[SHA256]-----+


Необходимо ввести имя файла ключа (в моем случае ~/.ssh/rsa-vm-wp), пароль для доступа к ключу (можно оставить пустым, нажав Enter).



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

$ ssh-copy-id -p 2222 -i ~/.ssh/rsa-vm-wp.pub [email protected]
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "rsa-vm-wp.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
[email protected]'s password: пароль


Включаем на сервере аутентификацию по публичному ключу:

$ sudo nano /etc/ssh/sshd_config
PubkeyAuthentication yes



И отключаем возможность аутентификации по паролю:

PasswordAuthentication no



Перезагружаем ssh-службу после изменения настроек и пробуем подключиться к серверу по ключу:

$ sudo systemctl restart ssh
$ ssh -p 2222 -i ~/.ssh/rsa-vm-wp [email protected]
Welcome to Ubuntu 18.04.3 LTS (GNU/Linux 5.0.0-37-generic x86_64)


И последний момент — добавляем новую запись в файл ~/.ssh/config:

Host vm-wp
  User evgeniy
  HostName 192.168.110.12
  Port 2222
  IdentityFile ~/.ssh/rsa-vm-wp


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

$ ssh vm-wp
Welcome to Ubuntu 18.04.3 LTS (GNU/Linux 5.0.0-37-generic x86_64)

Поиск:
CLI • Linux • SSH • Ubuntu • Настройка • Установка • Служба • Сервер • Ключ

Установка и настройка SSH-сервера в Ubuntu

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

В Ubuntu и родственных дистрибутивах используется свободная реализация клиента и сервера SSH — OpenSSH. И клиент, и сервер устанавливаются общей командой:

sudo apt-get install ssh

Как правило, SSH-клиент уже установлен в системе, поэтому данная команда доустановит SSH-сервер.

Установка пакетов SSH-сервера.

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

sudo service ssh start

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

sudo service ssh stop

Для перезапуска:

sudo service ssh restart

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

Пример файла /etc/ssh/sshd_config.

Повышаем безопасность SSH-сервера

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

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

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

Port 2002

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

ListenAddress 192.168.0.1:2003
ListenAddress 192.168.1.1:2004

Кстати, про IP-адреса. По умолчанию SSH-сервер в Ubuntu настроен на использование IPv4 и IPv6. Определяется это директивой AddressFamily.

Разрешены IPv4 и IPv6:

AddressFamily any

Разрешены только IPv4:

AddressFamily inet

Разрешены только IPv6:

AddressFamily inet6

Следующим разумным шагом для повышения безопасности SSH-подключений будет отключение удаленного доступа для суперпользователя. По умолчанию доступ суперпользователю открыт только по ключу, а по паролю закрыт. Определяется это директивой PermitRootLogin, которая выставлена в значении prohibit-password (в OpenSSH до версии 7.0 without-password).

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

PermitRootLogin no

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

PermitRootLogin forced-commands-only

Если же вы всё таки хотите разрешить суперпользователю доступ по SSH, директива должна выглядеть так:

PermitRootLogin yes

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

Наверное, вы уже заметили, что в материалах про SSH упоминаются разные способы аутентификации (по логину/паролю и по ключу). Разберем оба способа подробнее.

Аутентификация через логин и пароль упрощает подключение к серверу новых пользователей, но является не слишком безопасным, поскольку пароль можно подобрать (а пользователь может задать очень простой пароль, чтобы ему его было проще запомнить). По умолчанию аутентификация по паролю включена. Отвечает за это директива PasswordAuthentication.

Аутентификация по логину/паролю разрешена:

PasswordAuthentication yes

Аутентификация по логину/паролю запрещена:

PasswordAuthentication no

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

PermitEmptyPasswords no

Более безопасным способом подключения является аутентификация на основе SSh3 RSA-ключей. Этот способ подразумевает генерацию пользователем на своей стороне пары ключей — приватного и публичного. Публичный ключ копируется на сервер и служит для проверки идентичности пользователя.

Сам способ генерации зависит от используемого пользователем SSH-клиента. В том же PuTTY есть утилита PuTTY Key Generator (puttygen.exe), которая позволяет генерировать различные ключи, а не только RSA. О ней можете прочитать в этой статье. Но это что касается Windows.

Интерфейс PuTTY Key Generator.

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

ssh-keygen -t rsa

Терминал выведет следующее сообщение:

Нажмите Enter. Далее будет предложено задать кодовую фразу для дополнительной защиты SSH-подключения. Этот шаг можно пропустить.

При ответе на следующий вопрос тоже нажмите Enter.

После этого пара ключей будет создана, а на экран будет выведено сообщение следующего характера:

Для просмотра приватного ключа введите команду:

cat ~/.ssh/id_rsa

Ключ будет выведен в окне терминала.

Ну а для просмотра публичного ключа введите:

cat ~/.ssh/id_rsa.pub

Вернемся к настройке SSH-сервера в Ubuntu. Первым делом отметим, что OpenSSH умеет работать как с протоколом SSH-1, так и с SSH-2. И оба поддерживают RSA-ключи. Но SSH-1 ныне считается небезопасным протоколом, поэтому рекомендуется использовать только SSH-2. Сделать это можно через следующую директиву:

Protocol 2

За включение или выключение аутентификации по паре RSA-ключей отвечает директива PubkeyAuthentication. Для включения аутентификации задайте:

PubkeyAuthentication yes

Кроме того, нужно указать, где будут храниться публичные ключи пользователей. Для этого используется специальный файл authorized_keys. Можно использовать общий файл для всех ключей пользователей или задать по отдельному файлу для каждого пользователя. Второй способ, естественно, является более безопасным. Задать расположение файла с ключами можно директивой AuthorizedKeysFile.

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

AuthorizedKeysFile /etc/ssh/authorized_keys

Если нужно задать отдельный файл для каждого пользователя, используйте:

AuthorizedKeysFile %h/.ssh/authorized_keys

Скорее всего, указанные файлы и каталоги не были созданы заранее в Вашей системе, создайте их и скопируйте туда публичные ключи (содержимое файла id_rsa.pub, который мы создали выше при генерации ключей) командой:

ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

где user и server это имена пользователя и сервера соответственно.

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

ssh-copy-id '-p 2002 -i ~/.ssh/id_rsa.pub [email protected]

Естественно, вместо 2002 может быть и другой порт.

В старых версиях OpenSSH нет скрипта ssh-copy-id, поэтому можно использовать другую команду:

cat ~/.ssh/id_rsa.pub | ssh [email protected] 'cat >> ~/.ssh/authorized_keys'

Если вы подключаетесь с клиентской машины с Windows, то скопировать публичный ключ на сервер можно, например, через любой FTP-клиент (SFTP-клиент).

Кстати, про SFTP. Как известно, SSH-серверы позволяют передавать файлы через SFTP. И OpenSSH тут не исключение. Для включения SFTP добавьте в файл sshd_config строку:

Subsystem sftp /usr/lib/openssh/sftp-server

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

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

AllowUsers — список пользователей, которым можно подключаться к SSH-серверу. По умолчанию он также не указан, и это значит, что подключаться можно всем. Если занести в данный список пользователей, подключаться смогут только они. Если в списке будет один пользователь — подключаться сможет только он.

DenyGroups — список групп пользователей, которым нельзя подключаться к SSH-серверу. По умолчанию не указан.

AllowGroups — список групп пользователей, которым можно подключаться к SSH-серверу. По умолчанию не указан. Если занести в этот список группы (группу), то подключаться смогут только пользователи, входящие в эти группы (группу).

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

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

Настраиваем SSH в Debian

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

Установка SSH-server и SSH-client

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

  1. Откройте меню «Пуск» и запустите оттуда «Терминал». Сделать это можно и через стандартную комбинацию клавиш Ctrl + Alt + T.
  2. Здесь вас интересует команда sudo apt install openssh-server, отвечающая за установку серверной части. Введите ее и нажмите на Enter для активации.
  3. Как вы уже знаете, действия, выполняемые с аргументом sudo, потребуется активировать, указав пароль суперпользователя. Учитывайте, что вводимые в данной строке символы не отображаются.
  4. Вы будете уведомлены о том, что пакеты добавлены или обновлены. Если SSH-server уже инсталлирован в Debian, появится сообщение о наличии указанного пакета.
  5. Далее потребуется добавить в систему и клиентскую часть, что касается и того компьютера, к которому в будущем будет осуществляться подключение. Для этого используется похожая команда sudo apt-get install openssh-client.

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

Управление сервером и проверка его работы

Вкратце давайте остановимся на том, как осуществляется управление установленным сервером и проверка его работы. Это необходимо сделать еще до того, как переходить к настройке, чтобы убедиться в корректности функционирования добавленных компонентов.

  1. Используйте команду sudo systemctl enable sshd, чтобы добавить сервер в автозагрузку, если это не случилось автоматически. В случае надобности отмены запуска вместе с операционной системой используйте systemctl disable sshd. Тогда для ручного запуска понадобится указывать systemctl start sshd.
  2. Все подобные действия абсолютно всегда должны быть выполнены от имени суперпользователя, поэтому нужно вводить его пароль.
  3. Задействуйте команду ssh localhost для проверки сервера на работоспособность. Замените localhost на адрес локального компьютера.
  4. При первом подключении вы будете уведомлены о том, что источник не является проверенным. Это происходит, поскольку мы еще не выставили настройки безопасности. Сейчас просто подтвердите продолжение подключения, введя yes.

Добавление пары ключей RSA

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

  1. Откройте «Терминал» и введите там ssh-keygen.
  2. Вы можете самостоятельно выбрать место, куда требуется сохранить путь к ключу. Если нет желания его менять, просто нажмите на клавишу Enter.
  3. Сейчас создается открытый ключ. Он может быть защищен кодовой фразой. Введите ее в отобразившуюся строку или оставьте пустой, если не хотите активировать данную опцию.
  4. При вводе ключевой фразы придется указать ее еще раз, чтобы подтвердить.
  5. Отобразится уведомление о создании публичного ключа. Как видите, ему был присвоен набор случайных символов, а также создалось изображение по рандомным алгоритмам.

Благодаря только что произведенным действием создался секретный и открытый ключ. Они и будут задействованы для соединения между устройствами. Сейчас придется скопировать открытый ключ на сервер, а сделать это можно разными методами.

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

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

Способ 1: Команда ssh-copy-id

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

  1. В консоли введите команду ssh-copy-id [email protected]_host и активируйте ее. Замените [email protected]_host на адрес целевого компьютера, чтобы отправка прошла успешно.
  2. При первой попытке соединения вы увидите сообщение "The authenticity of host '203.0.113.1 (203.0.113.1)' 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". Выберите положительный ответ, чтобы продолжить подключение.
  3. После этого утилита самостоятельно займется поиском и копированием ключа. В итоге, если все прошло успешно, на экране появится уведомление «/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys [email protected]'s password:«. Это значит, что можно вводить пароль и переходить к непосредственному управлению удаленным рабочим столом.

Дополнительно уточним, что после первой успешной авторизации в консоли появится уведомление следующего характера:

Number of key(s) added: 1

Now try logging into the machine, with: «ssh ‘[email protected]′»
and check to make sure that only the key(s) you wanted were added.

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

Способ 2: Экспорт ключа через SSH

Как вы знаете, экспорт публичного ключа позволит подключаться к указанному серверу без предварительного ввода пароля. Сейчас, пока ключ еще не находится на целевом компьютере, подключиться через SSH можно путем ввода пароля, чтобы затем вручную перенести необходимый файл. Для этого в консоли вам придется вписать команду cat ~/.ssh/id_rsa.pub | ssh [email protected]ote_host "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys".

На экране должно появиться уведомление

The authenticity of host '203.0.113.1 (203.0.113.1)' 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)?
.

Подтвердите его, чтобы продолжить соединение. Публичный ключ будет автоматически скопирован в конец конфигурационного файла «authorized_keys». На этом процедуру экспорта можно считать оконченной.

Способ 3: Ручное копирование ключа

Этот метод подойдет тем пользователям, у кого нет возможности создать удаленное подключение к целевому компьютеру, однако имеется физический доступ к нему. В таком случае ключ придется переносить самостоятельно. Для начала определите сведения о нем на серверном ПК через cat ~/.ssh/id_rsa.pub.

В консоли должна отобразиться строка ssh-rsa + ключ в виде набора символов== [email protected]. Теперь можно перейти к другому компьютеру, где следует создать новую директорию, введя mkdir -p ~/.ssh. В ней же добавляется текстовый файл под названием authorized_keys. Осталось только вставить туда определенный ранее ключ через echo + строка публичного ключа >> ~/.ssh/authorized_keys. После этого аутентификация будет доступна без предварительного ввода паролей. Осуществляется это через команду ssh [email protected]_host, где [email protected]_host следует заменить на имя необходимого хоста.

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

Отключение аутентификации по паролю

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

  1. Откройте конфигурационный файл /etc/ssh/sshd_config через любой удобный текстовый редактор, это может быть, например, gedit или nano.
  2. В открывшемся списке отыщите строку «PasswordAuthentication» и уберите знак #, чтобы сделать эту команду активной. Поменяйте значение yes на no, чтобы отключить интересующую опцию.
  3. По завершении нажмите на Ctrl + O, чтобы сохранить изменения.
  4. Не меняйте название файла, а просто нажмите на Enter для применения настройки.
  5. Можно покинуть текстовый редактор, нажав на Ctrl + X.
  6. Все изменения вступят в силу только после перезагрузки службы SSH, поэтому сделайте это сразу же через sudo systemctl restart ssh.

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

Настройка параметра межсетевого экрана

В завершение сегодняшнего материала хотим рассказать о настройке межсетевого экрана, который будет использован для разрешений или запрещений соединений. Мы пройдемся только по основным пунктам, взяв за пример Uncomplicated Firewall (UFW).

  1. Для начала давайте просмотрим список существующих профилей. Введите sudo ufw app list и нажмите на Enter.
  2. Подтвердите действие, указав пароль суперпользователя.
  3. В списке отыщите SSH. Если эта строка там присутствует, значит, все функционирует корректно.
  4. Разрешите соединение через эту утилиту, написав sudo ufw allow OpenSSH.
  5. Включите межсетевой экран, чтобы обновить правила. Делается это через команду sudo ufw enable.
  6. Вы в любой момент можете проверить текущее состояние брандмауэра, введя sudo ufw status.

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

Мы рады, что смогли помочь Вам в решении проблемы.

Опишите, что у вас не получилось.
Наши специалисты постараются ответить максимально быстро.

Помогла ли вам эта статья?

ДА НЕТ

Настройка ssh сервера на OpenSSH и ssh клиента

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

Настройки sshd находятся в файле /etc/ssh/sshd_config. Открываем этот файл для редактирования и изменяем его содержимое для наших нужд, не забывая при этом о безопасности.

Первый параметр – Port. По умолчанию используется 22 порт. Изменим его на нестандартный порт 2203 – это избавит наш сервер от сетевых роботов, которые автоматически сканируют интернет в поиске открытых портов и пытаются через них подключиться. Это не избавит от сканирования человеком, но для защиты от человека существует фаервол, хитрые способы открытия порта, «горшочки с мёдом» и т. д.

Port 2203

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

$ ssh –l andrey –p 2203 192.168.123.254

или так

$ ssh [email protected] –p 2203

Следующие две закомментированные строки оставляем без изменения.

#ListenAddress ::

#ListenAddress 0.0.0.0

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

ListenAddress 192.168.123.0

В этой же строке можно явно указать порт, предварительно закомментировав (поставив символ # в начале строки) первую строку – Port 2203:

ListenAddress 192.168.123.0:2203

Следующий параметр отвечает за версию протокола SSH. Значение по умолчанию 2. Его и оставляем. Не добавляем единичку ни при каких обстоятельствах. Первая версия протокола SSH не безопасна!

Protocol 2

Строки HostKey необходимы для второй версии протокола SSH и отвечают за названия файлов ключей и их расположение. Первая строка отвечает за пару ключей RSA, вторая соответственно за пару ключей DSA. К названиям открытых (публичных) ключей добавляется .pub. Эти ключи используются при аутентификации с ключом хоста. Можно поменять слово host в названии ключей на имя нашего сервера, но мы сделаем это в части, посвященной генерации ключей. Сейчас же отключим ключи DSA, так как будем пользоваться только RSA:

HostKey /etc/ssh/ssh_host_rsa_key

#HostKey /etc/ssh/ssh_sunup_dsa_key

Строка Privilege Separation указывает, должен ли демон ssh (sshd) разделять привилегии. Если да — то сначала будет создан непривилегированный дочерний процесс для входящего сетевого трафика. После успешной авторизации будет создан другой процесс с привилегиями вошедшего пользователя. Основная цель разделения привилегий — предотвращение превышения прав доступа. Оставляем yes.

UsePrivilegeSeparation yes

Следующие строки отвечают за временный ключ и его длину при работе с первой версией протокола SSH. Мы не используем SSH-1, поэтому пока закомментируем эти строки.

# KeyRegenerationInterval 3600

# ServerKeyBits 768

Далее следует группа параметров, отвечающая за журналирование. События, связанные с доступом по SSH записываются в журнал /var/log/auth

Первый параметр определяет, список каких событий администратор хочет видеть в журнале. Доступны следующие значения: DAEMON, USER, AUTH, LOCAL0, LOCAL1, LOCAL2, LOCAL3, LOCAL4, LOCAL5, LOCAL6, LOCAL7. Нас интересует авторизация, поэтому оставляем AUTH.

SyslogFacility AUTH

Второй параметр определяет уровень детализации событий. Доступны следующие события: SILENT , QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2, DEBUG3. Оставляем уровень детализации по умолчанию, если возникнут ошибки, то всегда можно увеличить детализацию журнала.

LogLevel INFO

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

LoginGraceTime 60

Второй параметр разрешает или запрещает вход по SSH под суперпользователем. Запрещаем вход суперпользователю.

PermitRootLogin no

Третий параметр включает проверку демоном ssh прав и владение домашним каталогом пользователя, который пытается получить удалённый доступ к компьютеру. Оставляем yes.

StrictModes yes

Добавляем параметр AllowUsers, которого нет в конфигурационном файле по умолчанию. Этот параметр разрешает доступ к серверу по протоколу SSH только для перечисленных пользователей.

AllowUsers andrey

В нашем примере разрешение есть только у пользователя andrey. Значениями этого параметра могут выступать имена пользователей, отделённые друг от друга пробелами. Нельзя использовать в качестве значений UID (User ID). Можно использовать запись пользователя в виде [email protected], например [email protected] Это означает, что доступ разрешён пользователю andrey с компьютера echidna. Причём пользователь и компьютер проверяются отдельно, это позволяет разграничить доступ определенных пользователей с определенных компьютеров. Существует обратный параметр – DenyUsers, который запрещает доступ пользователям, перечисленным в значении этого параметра. Кроме параметров связанных с доступом отдельных пользователей существуют соответствующие параметры для групп: AllowGroups и DenyGroups.

Оставляем включенной аутентификацию RSA, в параметре RSAAuthentication:

RSAAuthentication yes

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

PubkeyAuthentication yes

Параметр AuthorizedKeysFile определяет файл, в котором содержатся публичные ключи, используемые для аутентификации пользователей по открытому ключу. В записи могут присутствовать переменные, например %h означает домашний каталог пользователя, а %u – имя пользователя. В дальнейшем мы планируем использование аутентификации по открытому ключу — раскомментируем эту строку.

AuthorizedKeysFile .ssh/authorized_keys

Следующие два параметра отвечают за включение совместимости с программой rhosts. Нам такая совместимость только повредит, поэтому оставляем значения по умолчанию.

IgnoreRhosts yes

RhostsRSAAuthentication no

Аутентификация hostbased нам тоже не нужна и она уже отключена, поэтому оставляем существующее значение

HostbasedAuthentication no

Следующая строка нужна для совместимости с rhost – оставляем закомментированной.

#IgnoreUserKnownHosts yes

Параметр PermitEmptyPasswords разрешает или запрещает вход с пустым паролем. Естественно, запрещаем вход с пустым паролем – оставляем no.

PermitEmptyPasswords no

Параметр ChallengeResponseAuthentication включает PAM интерфейс. Если задано значение yes, то для всех типов аутентификации помимо обработки модуля сессии и аккаунта PAM, будет использоваться аутентификация на основе запроса-ответа (ChallengeResponseAuthentication и PasswordAuthentication) Т.к. аутентификация запросов-ответов в PAM обычно выполняет ту же роль, что и парольная аутентификация, следует отключить, либо PasswordAuthentication, либо ChallengeResponseAuthentication.

ChallengeResponseAuthentication no

Следующий параметр отвечает за аутентификацию по паролю. Сейчас используется аутентификация по ключу хоста — просто раскомментируем строку.

PasswordAuthentication yes

Группу из четырёх параметров, отвечающих за аутентификацию Kerberos, оставляем без изменений – не раскомментированными.

#KerberosAuthentication no

#KerberosGetAFSToken no

#KerberosOrLocalPasswd yes

#KerberosTicketCleanup yes

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

#GSSAPIAuthentication no

#GSSAPICleanupCredentials yes

Параметры, начинающиеся с X11, отвечают за проброс иксов через ssh туннель. Ниш сервер не имеет иксов, поэтому закомментируем эти опции

# X11Forwarding yes

# X11DisplayOffset 10

Опция PrintMotd выводит при подключении к sshd так называемое сообщение дня, что на самом деле является содержимым файла /etc/motd. Опция PrintLastLog очень полезна, так как она включает отображение информации о том, когда вы последний раз и с какого компьютера заходили на сервер.

PrintMotd no

PrintLastLog yes

Установим параметру TCPKeepAlive значение no. Этот параметр важен для поддержания соединения со стороны сервера, но мы реализуем те же функции, но более безопасней.

TCPKeepAlive no

Для этого добавим два следующих параметра:

ClientAliveCountMax 3

ClientAliveInterval 20

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

Параметр UseLogin оставляем закомментированным. Его значение по умолчанию и так no.

#UseLogin no

Раскомментируем параметр MaxStartups и выставим ему следующее значение:

MaxStartups 3:30:9

По умолчанию значение данного параметра 10. Это количество неавторизованных подключений к серверу ssh. Длительность такого подключения определяется параметром LoginGraceTime, описанным выше. Перенесём параметр MaxStartups под LoginGraceTime и запишем в виде start:rate:full, где start – это уже имеющееся количество неавторизованных подключений, rate – процент вероятности отклонения попытки подключения, full – максимальное количество неавторизованных соединений. В нашем примере, если уже имеется 3 неавторизованных подключения, то следующее подключение будет отклонено с вероятностью 30%, а если количество неавторизованных подключений достигнет 9, то все последующие попытки подключения будут отвергнуты.

Опция Banner определяет место положения файла-баннера, который будет выведен на экран, при попытке подключиться к серверу sshd. Предлагается файл /etc/issue.net, но можно использовать свой баннер, поместив его, например в /etc/ssh. В Debian по умолчанию выводится содержимое файла /etc/motd.tail. Оставляем как есть.

#Banner /etc/issue.net

Лучше добавим ещё один полезный параметр, который отсутствует в файле sshd_config – DebianBanner. Этот параметр добавляет в строку ответа sshd информацию об операционной системе, при обращению к серверу по протоколу TELNET или при сканировании nmap. Эта строка может выглядеть так: SSH-2.0-OpenSSH_5.5p1 Debian-6+squeeze1. Скроем информацию о нашей операционной системе.

DebianBanner no

Теперь строка ответа будет выглядеть так: SSH-2.0-OpenSSH_5.5p1

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

AcceptEnv LANG LC_*

Следующий параметр включает внешнюю подсистему (например, FTP). В качестве параметров понимает, имя подсистемы и команду, которая будет выполнена при запросе подсистемы. Команда sftp-server, реализует протокол передачи файлов через SSH — SFTP.

Subsystem sftp /usr/lib/openssh/sftp-server

Параметр UsePAM оставляем без изменений. Если директива UsePAM включена, то запустить sshd можно будет только от имени root.

UsePAM yes

Сохраняем изменения и перезапускаем sshd. Подключаемся, проверяем, если всё в порядке, то настройка сервера ssh с аутентификацией оп ключу хоста закончена. Для разрешения проблем и вывода отладочной информации можно подключаться с ключами: -v, -vv, -vvv.

Настройка ssh клиента

В Debian настройки клиентской части ssh делятся на глобальные и пользовательские. Глобальные клиентские настройки находятся в файле /etc/ssh/ssh_config и применяются ко всем пользователям. Пользовательские настройки могут находиться в домашнем каталоге пользователя, в ~/.ssh/config и применяются к одному пользователю. Файл пользовательских настроек не создаётся автоматически в отличие от файла глобальных настроек клиентской части ssh. Для большинства выполняемых задач подойдут настройки по умолчанию, но для удобства использования, так сказать для тюнинга или для выполнения нестандартных задач клиентские настройки изменяются. Рассмотрим вкратце некоторые из этих настроек. Полезно помнить о приоритетах настроек: высший приоритет имеют ключи командной строки, затем следуют настройки пользователя, а после них используются глобальные настройки клиентской части.

Параметр Host. Ограничивает множество хостов, к которым применяются последующие (до ближайшей новой директивы Host) директивы, по указанным шаблонам (хост должен соответствовать хотя бы одному шаблону). Шаблон, состоящий из одного символа *, соответствует любому хосту. Под хостом в данном контексте понимается аргумент имя_хоста передаваемый в командной строке (т.е. никаких преобразований перед сравнением не выполняется).

Параметр HostName. Устанавливает соответствие между псевдонимами, сокращениями и настоящими именами хостов. По умолчанию используется имя, передаваемое в командной строке. Допустимо непосредственное указание IP-адресов.

Параметр Port. Порт на удалённой машине, к которому следует подключаться. Значение по умолчанию — 22

Параметр User. Имя пользователя, которое следует использовать при регистрации в удалённой системе. Полезно, когда на разных серверах используются разные имена, т.к. избавляет от надобности вспоминать каждый раз нужное имя.

В качестве примера я создам файл пользовательских настроек /home/selifan/.ssh/config следующего содержания:

Host sunup

HostName sunup.aitishnik.local

Port 2203

User andrey

Host windbag

HostName windbag.nnov.ru

Port 2280

User joker

Host 212.177.65.1

HostName 212.177.65.1

Port 2222

User forester

Теперь при подключении к компьютерам sunup.aitishnik.local, windbag или по ip адресу 212.177.65.1 мне не нужно вспоминать, ни имя пользователя, ни ssh порт подключения, достаточно после ssh набрать имя сервера. Просто и удобно! Описания всех параметров, значений и некоторых примеров находятся в man ssh_config. Продолжаем настраивать SSH и читаем «Генерация ключей SSH».

Об авторе:

Меня зовут Андрей Золкин. Из более, чем пятнадцати лет работы в сфере информационных технологий, десять лет работаю с системами, базирующимися на открытом исходном коде. На страницах сайта Aitishnik.Ru веду блоги по CMC Joomla и Debian GNU/Linux.

 

Ещё статьи о Debian


    • Настройка SSH в Debian

      Довольно часто, администрирование сервера на базе Linux происходит посредством удалённого доступа. А основным способом удалённого администрирования является администрирование с помощью SSH. Об этом и пойдёт речь в этой статье. Данная…


    • Опции vsftpd.conf

      Ниже я привожу список этих опций сгруппированных по типу — не так как в man — странице. Формат конфигурационного файла vsftpd.conf не сложный. Строки начинающиеся с символа # являются комментариями. Все остальные строки это директивы,…


    • Насторйка OpenSSH

      Настройки sshd находятся в файле /etc/ssh/sshd_config. Открываем этот файл для редактирования и изменяем его содержимое для наших нужд, не забывая при этом о безопасности.
      Первый параметр – Port. По умолчанию используется 22 порт….


    • Интерактивный режим aptitude

      В первой части статьи рассказывалось об управлении пакетами с помощью aptitude в режиме командной строки. Теперь рассмотрим интерактивный режим этой программы. Управление программой производится с клавиатуры. Для входа в интерактивный…


    • Установка Debian с usb накопителя

      Эта статья является частью руководства «Установка Debian на сервер» и рассказывает о загрузке программы установки с usb накопителей. Под usb накопителями понимаются usb флеш карты, съёмные usb диски и кард ридеры с usb интерфейсом. Для написания статьи использовались две самые простые usb flash карты: SMI и Transcend объёмом 2 Гб каждая, а так же кард ридер с…


    • Настройка сети в Debian

      В этой статье я опишу простую настройку сети для сервера под управлением ОС Debian 5 (Lenny). Всё, что описано в этой статье так же может быть использовано и для настройки сети в Debian 6 (Squeeze). Изначально рассматривалась настройка…

Установка OpenSSH для Windows Server

  • 3 минуты на чтение

В этой статье

Клиент OpenSSH и сервер OpenSSH являются отдельно устанавливаемыми компонентами в Windows Server 2019 и Windows 10 1809.
Пользователи этих версий Windows должны использовать следующие инструкции для установки и настройки OpenSSH.

Установка OpenSSH из пользовательского интерфейса настроек в Windows Server 2019 или Windows 10 1809

Клиент и сервер OpenSSH являются устанавливаемыми компонентами Windows 10 1809.

Чтобы установить OpenSSH, запустите «Настройки», затем выберите «Приложения»> «Приложения и функции»> «Управление дополнительными функциями».

Просмотрите этот список, чтобы увидеть, установлен ли клиент OpenSSH. Если нет, то вверху страницы выберите «Добавить объект», затем:

  • Чтобы установить клиент OpenSSH, найдите «Клиент OpenSSH», затем нажмите «Установить».
  • Чтобы установить сервер OpenSSH, найдите «Сервер OpenSSH», затем нажмите «Установить».

После завершения установки вернитесь в Приложения> Приложения и функции> Управление дополнительными функциями, и вы должны увидеть перечисленные компоненты OpenSSH.

Примечание

При установке сервера OpenSSH создается и активируется правило брандмауэра с именем «OpenSSH-Server-In-TCP». Это разрешает входящий трафик SSH на порт 22.

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

Чтобы установить OpenSSH с помощью PowerShell, сначала запустите PowerShell от имени администратора.Чтобы убедиться, что функции OpenSSH доступны для установки:

  Get-WindowsCapability -Online | ? Имя - вроде 'OpenSSH *'

# Это должно вернуть следующий результат:

Имя: OpenSSH.Client ~~~~ 0.0.1.0
Состояние: NotPresent
Имя: OpenSSH.Server ~~~~ 0.0.1.0
Состояние: NotPresent
  

Затем установите компоненты сервера и / или клиента:

  # Установить клиент OpenSSH
Добавить-WindowsCapability -Online -Name OpenSSH.Client ~~~~ 0.0.1.0

# Установить сервер OpenSSH
Добавить-WindowsCapability -Online -Name OpenSSH.Сервер ~~~~ 0.0.1.0

# Оба они должны вернуть следующий результат:

Дорожка          :
Онлайн: Верно
RestartNeeded: False
  

Удаление OpenSSH

Чтобы удалить OpenSSH с помощью настроек Windows, запустите «Настройки», затем выберите «Приложения»> «Приложения и компоненты»> «Управление дополнительными функциями».
В списке установленных функций выберите компонент OpenSSH Client или OpenSSH Server, затем выберите Удалить.

Чтобы удалить OpenSSH с помощью PowerShell, используйте одну из следующих команд:

  # Удаление клиента OpenSSH
Удалить-WindowsCapability -Online -Name OpenSSH.Клиент ~~~~ 0.0.1.0

# Удалить сервер OpenSSH
Удалить-WindowsCapability -Online -Name OpenSSH.Server ~~~~ 0.0.1.0
  

После удаления OpenSSH может потребоваться перезагрузка Windows, если служба использовалась во время удаления.

Первоначальная настройка SSH-сервера

Чтобы настроить сервер OpenSSH для первоначального использования в Windows, запустите PowerShell от имени администратора, а затем выполните следующие команды для запуска службы SSHD:

  Start-Service sshd
# НЕОБЯЗАТЕЛЬНО, но рекомендуется:
Set-Service -Name sshd -StartupType 'Automatic'
# Подтвердите, что правило брандмауэра настроено.Он должен быть создан автоматически при установке.
Get-NetFirewallRule -Name * ssh *
# Должно быть правило брандмауэра с именем "OpenSSH-Server-In-TCP", которое должно быть включено
# Если брандмауэра не существует, создайте его
New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
  

Первоначальное использование SSH

После того, как вы установили сервер OpenSSH в Windows, вы можете быстро протестировать его с помощью PowerShell с любого устройства Windows с установленным клиентом SSH.В PowerShell введите следующую команду:

  Имя пользователя SSH @ servername
  

Первое подключение к любому серверу приведет к сообщению, подобному следующему:

  Подлинность хоста «servername (10.00.00.001)» не может быть установлена.
Отпечаток ключа ECDSA - SHA256 :( ).
Вы уверены, что хотите продолжить подключение (да / нет)?
  

Ответ должен быть либо «да», либо «нет».
Ответ «Да» добавит этот сервер в список известных ssh-хостов локальной системы.

На этом этапе вам будет предложено ввести пароль. В целях безопасности ваш пароль не будет отображаться при вводе.

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

  домен \ имя пользователя @ ИМЯ СЕРВЕРА C: \ Users \ имя пользователя>
  

Оболочка по умолчанию, используемая сервером Windows OpenSSH, — это командная оболочка Windows.

.

Как настроить SSH в Linux и протестировать вашу установку: руководство для начинающих

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

Но как настроить SSH как на стороне клиента, так и на стороне сервера? Узнайте, как установить и настроить программное обеспечение SSH на обоих концах и удаленно управлять своим компьютером Linux.

Что такое SSH?

SSH означает S ecure Sh ell и позволяет удаленно управлять компьютером или сервером Linux с другого устройства.Он работает в локальных сетях и в Интернете, а это означает, что его можно использовать для управления медиа-сервером на базе Linux в вашем доме или веб-сервером Linux на другом континенте.

Хотя SSH не дает вам доступа к среде рабочего стола удаленного компьютера, он позволяет использовать терминал.После подключения к удаленному компьютеру вы можете использовать его, как если бы он находился прямо перед вами. Только убедитесь, что у вас есть root-доступ.

Обратите внимание, что для Linux доступны и другие решения удаленного доступа.Например, пользователи Ubuntu могут положиться на VNC-совместимый инструмент удаленного рабочего стола Remmina.

ubuntu-remote-desktop-featured

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

Установка на стороне клиента

Установить и настроить SSH на клиенте очень просто.В некоторых случаях вам даже не понадобится дополнительное программное обеспечение:

  • Пользователи Linux должны найти SSH-клиент, встроенный в терминал.
  • На компьютерах с macOS также предварительно установлен SSH в терминале.
  • ПК с Windows должны будут использовать инструмент командной строки PowerShell или установить PuTTY

.

Connect to a device using SSH in Windows PowerShell

  • Для подключения к Linux через SSH с iPhone и iPad попробуйте iTerminal (4 доллара.99)
  • Если вы используете Android для SSH, попробуйте JuiceSSH (бесплатно)

JuiceSSH connected

Connecting to a device with JuiceSSH

SSH не установлен в вашей системе Linux? Добавьте, обновив пакеты и обновив, а затем установив:

  sudo apt update && sudo apt upgrade 
sudo apt install openssh-client

Раньше использовали SSH в Windows, но перешли на рабочий стол Linux? Возможно, вы пропустите настольное приложение SSH PuTTY с простым интерфейсом мыши.К счастью, его можно установить на рабочий стол Linux:

  sudo apt установить шпатлевку  

Установив клиентское программное обеспечение SSH, вы готовы установить соединение с удаленным компьютером или сервером.

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

Установка и настройка на стороне сервера

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

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

Если SSH не включен на удаленном компьютере или сервере, установите его с помощью

  sudo apt установить openssh-server  

Убедитесь, что это работало с

  sudo systemctl статус ssh  

Команда должна запретить ответ «активен.»

Check the status to confirm SSH is set up correctly

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

  sudo ufw разрешить ssh  

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

  sudo systemctl включить ssh  

Доступны и другие варианты ( остановить , запустить и отключить ) для настройки службы SSH.

Определить IP-адрес

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

  • Выполнить команду терминала
  • Проверить маршрутизатор

Чтобы отобразить IP-адрес удаленной системы, войдите в систему и запустите

  IP-адрес  

Это вернет IP-адрес устройства, поэтому запишите его.В более старых версиях Linux ifconfig может дать лучшие результаты.

Вы также можете проверить свой маршрутизатор, чтобы увидеть подключенные устройства.ПК или сервер Linux будут перечислены, как правило, по имени операционной системы или устройства. Это должно упростить идентификацию.

Чтобы отобразить общедоступный IP-адрес, войдите на сервер и откройте whatsmyip.орг.

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

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

Наряду с правильным IP-адресом у вас также должны быть имя пользователя и пароль для доступа к удаленному компьютеру.

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

  ssh имя пользователя @ REMOTE.IP.ADDRESS.HERE  

Обязательно замените имя пользователя на настоящее имя пользователя и REMOTE.IP.ADDRESS.HERE с IP-адресом удаленного устройства. Нажмите Enter, , и вам будет предложено ввести пароль.

С правильным паролем вы получите работающую подсказку терминала — теперь вы вошли на удаленный компьютер.

Используете настольный клиент SSH, например PuTTY?

Configure SSH on Windows with PuTTY

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

Не удается подключиться? Устранение неполадок при настройке SSH

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

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

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

Удаленное использование Linux по SSH

SSH — полезный инструмент для управления одним или несколькими компьютерами Linux.

Это позволяет вам работать на любой машине из одной системы.Вы можете ввести практически любую команду терминала Linux через SSH.

Ключевые примеры включают:

  • Обновление: sudo apt update && sudo apt upgrade
  • Проверить статус: uptime
  • Запущенные процессы: пс
  • Запущенные процессы по ЦП: верхний

Setup SSH on a Linux server to run commands remotely

Ознакомьтесь с нашим списком команд SSH для управления сервером Linux для получения дополнительной информации.

Настройка SSH и повышение производительности Linux

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

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

reset photoshop featured

Как восстановить внешний вид Adobe Photoshop по умолчанию

Если ваше рабочее пространство Adobe Photoshop выглядит странно, есть простое исправление, чтобы оно выглядело именно так, как вы привыкли.

Об авторе

Кристиан Коули
(Опубликовано 1400 статей)

Заместитель редактора по безопасности, Linux, DIY, программированию и техническим вопросам.Он также выпускает The Really Useful Podcast и имеет большой опыт в поддержке настольных компьютеров и программного обеспечения.

Автор статьи в журнале Linux Format, Кристиан — мастер Raspberry Pi, любитель Lego и фанат ретро-игр.

Ещё от Christian Cawley

Подпишитесь на нашу рассылку новостей

Подпишитесь на нашу рассылку, чтобы получать технические советы, обзоры, бесплатные электронные книги и эксклюзивные предложения!

Еще один шаг…!

Подтвердите свой адрес электронной почты в только что отправленном вам электронном письме.

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *