Ssh установка: Установка SSH-Server в Ubuntu
Установка SSH-Server в Ubuntu
Протокол SSH используется для обеспечения безопасного соединения с компьютером, что позволяет производить удаленное управление не только через оболочку операционной системы, но и шифрованный канал. Иногда у пользователей операционной системы Ubuntu возникает надобность поставить SSH-сервер на свой ПК для реализации каких-либо целей. Поэтому мы предлагаем детально ознакомиться с этим процессом, изучив не только процедуру загрузки, но и настройку основных параметров.
Устанавливаем SSH-server в Ubuntu
Компоненты SSH доступны для скачивания через официальное хранилище, потому мы будем рассматривать именно такой метод, он является самым стабильным и надежным, а также не вызывает сложностей у начинающих юзеров. Весь процесс мы разбили на шаги, чтобы вам было проще ориентироваться в инструкциях. Давайте же начнем с самого начала.
Шаг 1: Загрузка и установка SSH-server
Выполнять поставленную задачу будем через «Терминал» с использованием основного набора команд. Обладать дополнительными знаниями или навыками не нужно, вы получите детальное описание каждого действия и все необходимые команды.
- Запустите консоль через меню или зажав комбинацию Ctrl + Alt + T.
- Сразу же начните скачивание файлов сервера с официального репозитория. Для этого потребуется ввести
sudo apt install openssh-server
, а затем нажать на клавишу Enter. - Поскольку мы используем приставку sudo (выполнение действия от имени суперпользователя), вам потребуется ввести пароль от своей учетной записи. Учтите, что символы при вводе не отображаются.
- Вы будете уведомлены о скачивании определенного объема архивов, подтвердите действие, выбрав вариант Д.
- По умолчанию клиент устанавливается вместе с сервером, но не лишним будет убедиться в его наличии, попытавшись инсталлировать его повторно с помощью
sudo apt-get install openssh-client
.
SSH-сервер будет доступен для взаимодействия с ним сразу же после успешного добавления всех файлов в операционную систему, но его еще следует настроить, чтобы обеспечить корректную работу. Советуем ознакомиться со следующими шагами.
Шаг 2: Проверка работы сервера
Для начала давайте убедимся в том, что стандартные параметры были применены верно, а SSH-server отзывается на основные команды и выполняет их правильно, поэтому вам надо:
- Запустите консоль и пропишите там
sudo systemctl enable sshd
, чтобы добавить сервер в автозагрузку Ubuntu, если вдруг этого не случилось автоматически после установки. - Если вам не нужно, чтобы инструмент стартовал вместе с ОС, удалите его с автозапуска путем ввода
sudo systemctl disable sshd
. - Теперь проверим, как производится подключение к локальному компьютеру. Примените команду
ssh localhost
(localhost — адрес вашего локального ПК). - Подтвердите продолжение подключения, выбрав вариант yes.
- В случае успешной загрузки вы получите примерно такую информацию, как видите на следующем скриншоте. Проверить необходимо и подключение к адресу
0.0.0.0
, который выступает в роли выбранного сетевого IP по умолчанию для других устройств. Для этого введите соответствующую команду и нажмите на Enter. - При каждом новом соединении необходимо будет его подтверждать.
Как видите, команда ssh используется для подключения к любому компьютеру. Если у вас появилась надобность соединиться с другим устройством, просто запускайте терминал и вводите команду в формате ssh имя_пользователя@ip_адрес
.
Шаг 3: Редактирование файла конфигурации
Все дополнительные настройки протокола SSH осуществляются через специальный файл конфигурации изменением строк и значений. Не будем сосредотачивать внимание на всех пунктах, к тому же большинство из них сугубо индивидуальны для каждого юзера, мы лишь покажем основные действия.
- Первоочередно сохраните резервную копию файла конфигурации, чтобы в случае чего обратиться к нему или восстановить исходное состояние SSH. В консоль вставьте команду
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.original
. - Затем вторую:
sudo chmod a-w /etc/ssh/sshd_config.original
. - Запуск файла настроек выполняется через
sudo vi /etc/ssh/sshd_config
. Сразу же после ввода он будет запущен и вы увидите его содержание, как показано на скриншоте ниже. - Здесь вы можете изменять используемый порт, что всегда лучше сделать для обеспечения безопасности подключения, далее может быть отключен вход от имени суперпользователя (PermitRootLogin) и включена активация по ключу (PubkeyAuthentication). По завершении редактирования следует нажать на клавишу : (Shift + ; на латинской раскладке) и добавить букву
w
, чтобы сохранить изменения. - Выход из файла осуществляется таким же образом, только вместо
w
используетсяq
. - Не забудьте перезапустить сервер, введя
sudo systemctl restart ssh
. - После изменения активного порта его нужно зафиксировать в клиенте. Делается это путем указания
ssh -p 2100 localhost
, где 2100 — номер замененного порта. - Если у вас настроен брандмауэр, там также требуется провести замену:
sudo ufw allow 2100
. - Вы получите уведомление, что все правила были обновлены.
С остальными параметрами вы вправе ознакомиться самостоятельно, прочитав официальную документацию. Там есть советы по изменению всех пунктов, помогающие определить, какие значения следует выбирать лично вам.
Шаг 4: Добавление ключей
При добавлении ключей SSH открывается авторизация между двумя устройствами без надобности предварительного ввода пароля. Процесс идентификации перестраивается под алгоритм чтения секретного и открытого ключа.
- Откройте консоль и создайте новый ключ клиента, введя
ssh-keygen -t dsa
, а затем присвойте название файлу и укажите сам пароль для доступа. - После этого будет сохранен публичный ключ и создастся секретное изображение. На экране вы увидите его вид.
- Осталось только скопировать созданный файл на второй компьютер, чтобы отключить подключение через пароль. Используйте команду
ssh-copy-id username@remotehost
, где username@remotehost — имя удаленного компьютера и его 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 Evgeniy@TKMCOMP 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 user@server
где user и server это имена пользователя и сервера соответственно.
Если вы уже изменили порт для подключения по SSH, слегка модифицируйте команду:
ssh-copy-id '-p 2002 -i ~/.ssh/id_rsa.pub user@server
Естественно, вместо 2002 может быть и другой порт.
В старых версиях OpenSSH нет скрипта ssh-copy-id, поэтому можно использовать другую команду:
cat ~/.ssh/id_rsa.pub | ssh user@server '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, выполните следующую инструкцию:
- Откройте меню «Пуск» и запустите оттуда «Терминал». Сделать это можно и через стандартную комбинацию клавиш Ctrl + Alt + T.
- Здесь вас интересует команда
sudo apt install openssh-server
, отвечающая за установку серверной части. Введите ее и нажмите на Enter для активации. - Как вы уже знаете, действия, выполняемые с аргументом sudo, потребуется активировать, указав пароль суперпользователя. Учитывайте, что вводимые в данной строке символы не отображаются.
- Вы будете уведомлены о том, что пакеты добавлены или обновлены. Если SSH-server уже инсталлирован в Debian, появится сообщение о наличии указанного пакета.
- Далее потребуется добавить в систему и клиентскую часть, что касается и того компьютера, к которому в будущем будет осуществляться подключение. Для этого используется похожая команда
sudo apt-get install openssh-client
.
Больше никаких дополнительных компонентов инсталлировать не придется, теперь можно смело переходить к управлению сервером и настройке конфигурационных файлов, чтобы создать ключи и подготовить все для дальнейшего соединения с удаленным рабочим столом.
Управление сервером и проверка его работы
Вкратце давайте остановимся на том, как осуществляется управление установленным сервером и проверка его работы. Это необходимо сделать еще до того, как переходить к настройке, чтобы убедиться в корректности функционирования добавленных компонентов.
- Используйте команду
sudo systemctl enable sshd
, чтобы добавить сервер в автозагрузку, если это не случилось автоматически. В случае надобности отмены запуска вместе с операционной системой используйтеsystemctl disable sshd
. Тогда для ручного запуска понадобится указыватьsystemctl start sshd
. - Все подобные действия абсолютно всегда должны быть выполнены от имени суперпользователя, поэтому нужно вводить его пароль.
- Задействуйте команду
ssh localhost
для проверки сервера на работоспособность. Заменитеlocalhost
на адрес локального компьютера. - При первом подключении вы будете уведомлены о том, что источник не является проверенным. Это происходит, поскольку мы еще не выставили настройки безопасности. Сейчас просто подтвердите продолжение подключения, введя yes.
Добавление пары ключей RSA
Подключение от сервера к клиенту и наоборот через SSH осуществляется путем ввода пароля, однако можно и даже рекомендуется создать пару ключей, которая будет разработана через алгоритмы RSA. Этот тип шифрования позволит создать оптимальную защиту, которую будет сложно обойти злоумышленнику при попытке взлома. На добавление пары ключей потребуется всего несколько минут, а выглядит это процесс так:
- Откройте «Терминал» и введите там
ssh-keygen
. - Вы можете самостоятельно выбрать место, куда требуется сохранить путь к ключу. Если нет желания его менять, просто нажмите на клавишу Enter.
- Сейчас создается открытый ключ. Он может быть защищен кодовой фразой. Введите ее в отобразившуюся строку или оставьте пустой, если не хотите активировать данную опцию.
- При вводе ключевой фразы придется указать ее еще раз, чтобы подтвердить.
- Отобразится уведомление о создании публичного ключа. Как видите, ему был присвоен набор случайных символов, а также создалось изображение по рандомным алгоритмам.
Благодаря только что произведенным действием создался секретный и открытый ключ. Они и будут задействованы для соединения между устройствами. Сейчас придется скопировать открытый ключ на сервер, а сделать это можно разными методами.
Копирование открытого ключа на сервер
В Debian существует три варианта, с помощью которых можно скопировать открытый ключ на сервер. Мы предлагаем сразу ознакомиться со всеми ними, чтобы в будущем выбрать оптимальный. Это актуально в тех ситуациях, когда один из методов не подходит или не удовлетворяет потребности юзера.
Способ 1: Команда ssh-copy-id
Начнем с самого простого варианта, подразумевающего использование команды ssh-copy-id. По умолчанию эта утилита уже встроена в ОС, поэтому в предварительной инсталляции не нуждается. Синтаксис ее тоже максимально прост, а от вас потребуется выполнить такие действия:
- В консоли введите команду
ssh-copy-id username@remote_host
и активируйте ее. Замените username@remote_host на адрес целевого компьютера, чтобы отправка прошла успешно. - При первой попытке соединения вы увидите сообщение
"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"
. Выберите положительный ответ, чтобы продолжить подключение. - После этого утилита самостоятельно займется поиском и копированием ключа. В итоге, если все прошло успешно, на экране появится уведомление «
/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 username@remote_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 + ключ в виде набора символов== demo@test
. Теперь можно перейти к другому компьютеру, где следует создать новую директорию, введя mkdir -p ~/.ssh
. В ней же добавляется текстовый файл под названием authorized_keys
. Осталось только вставить туда определенный ранее ключ через echo + строка публичного ключа >> ~/.ssh/authorized_keys
. После этого аутентификация будет доступна без предварительного ввода паролей. Осуществляется это через команду ssh username@remote_host
, где username@remote_host следует заменить на имя необходимого хоста.
Рассмотренные только что способы позволили перенести публичный ключ на новое устройство, чтобы сделать возможным подключение без ввода пароля, однако сейчас форма на ввод все еще отображается. Такое положение вещей позволяет злоумышленникам получить доступ к удаленному рабочему столу, просто перебрав пароли. Далее мы предлагаем заняться обеспечением безопасности, выполнив определенные настройки.
Отключение аутентификации по паролю
Как уже было сказано ранее, возможность аутентификации по паролю может стать слабым звеном в безопасности удаленного соединения, поскольку существуют средства переборов таких ключей. Мы рекомендуем отключить эту опцию, если вы заинтересованы в максимальной защите своего сервера. Сделать это можно так:
- Откройте конфигурационный файл
/etc/ssh/sshd_config
через любой удобный текстовый редактор, это может быть, например, gedit или nano. - В открывшемся списке отыщите строку «PasswordAuthentication» и уберите знак #, чтобы сделать эту команду активной. Поменяйте значение yes на
no
, чтобы отключить интересующую опцию. - По завершении нажмите на Ctrl + O, чтобы сохранить изменения.
- Не меняйте название файла, а просто нажмите на Enter для применения настройки.
- Можно покинуть текстовый редактор, нажав на Ctrl + X.
- Все изменения вступят в силу только после перезагрузки службы SSH, поэтому сделайте это сразу же через
sudo systemctl restart ssh
.
В результате выполненных действий возможность аутентификации по паролю будет отключена, а вход станет доступен только через пару ключей RSA. Учитывайте это при произведении подобной конфигурации.
Настройка параметра межсетевого экрана
В завершение сегодняшнего материала хотим рассказать о настройке межсетевого экрана, который будет использован для разрешений или запрещений соединений. Мы пройдемся только по основным пунктам, взяв за пример Uncomplicated Firewall (UFW).
- Для начала давайте просмотрим список существующих профилей. Введите
sudo ufw app list
и нажмите на Enter. - Подтвердите действие, указав пароль суперпользователя.
- В списке отыщите SSH. Если эта строка там присутствует, значит, все функционирует корректно.
- Разрешите соединение через эту утилиту, написав
sudo ufw allow OpenSSH
. - Включите межсетевой экран, чтобы обновить правила. Делается это через команду
sudo ufw enable
. - Вы в любой момент можете проверить текущее состояние брандмауэра, введя
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). Можно использовать запись пользователя в виде user@host, например andrey@echidna. Это означает, что доступ разрешён пользователю 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.
Чтобы использовать SSH, вам необходимо убедиться, что на удаленном компьютере (сервере) настроен SSH. Кроме того, для вашего локального устройства (клиента) потребуется установка приложения SSH.
Установка на стороне клиента
Установить и настроить SSH на клиенте очень просто.В некоторых случаях вам даже не понадобится дополнительное программное обеспечение:
- Пользователи Linux должны найти SSH-клиент, встроенный в терминал.
- На компьютерах с macOS также предварительно установлен SSH в терминале.
- ПК с Windows должны будут использовать инструмент командной строки PowerShell или установить PuTTY
.
- Для подключения к Linux через SSH с iPhone и iPad попробуйте iTerminal (4 доллара.99)
- Если вы используете Android для SSH, попробуйте 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
Команда должна запретить ответ «активен.»
В некоторых случаях брандмауэр 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?
Введите Host Name или IP-адрес , выберите тип подключения SSH , затем Open. Когда будет предложено ввести имя пользователя и пароль, введите их в окне командной строки, чтобы завершить соединение и получить удаленный доступ.
Не удается подключиться? Устранение неполадок при настройке SSH
Если у вас возникли проблемы с подключением по SSH, это возможные причины:
- Программное обеспечение SSH не установлено ни на одном компьютере
- Ваше имя пользователя или пароль неверны
- Неправильный IP-адрес
- Брандмауэр блокирует соединение, или порт 22 не пересылается
Дважды проверьте каждую точку, и вы сможете подключиться.В противном случае проблема может быть более сложной.
Удаленное использование Linux по SSH
SSH — полезный инструмент для управления одним или несколькими компьютерами Linux.
Это позволяет вам работать на любой машине из одной системы.Вы можете ввести практически любую команду терминала Linux через SSH.
Ключевые примеры включают:
- Обновление: sudo apt update && sudo apt upgrade
- Проверить статус: uptime
- Запущенные процессы: пс
- Запущенные процессы по ЦП: верхний
Ознакомьтесь с нашим списком команд SSH для управления сервером Linux для получения дополнительной информации.
Настройка SSH и повышение производительности Linux
Благодаря SSH Linux становится значительно более гибким и мощным.Вы можете получить буквально удаленный доступ к компьютеру с помощью смартфона благодаря SSH.
Если SSH настроен правильно, с включенным и настроенным клиентским и серверным программным обеспечением, возможен удаленный доступ из командной строки.Нужно что-то еще? Вот как удаленно управлять рабочим столом Linux из Windows.
Как восстановить внешний вид Adobe Photoshop по умолчанию
Если ваше рабочее пространство Adobe Photoshop выглядит странно, есть простое исправление, чтобы оно выглядело именно так, как вы привыкли.
Об авторе
Кристиан Коули
(Опубликовано 1400 статей)
Заместитель редактора по безопасности, Linux, DIY, программированию и техническим вопросам.Он также выпускает The Really Useful Podcast и имеет большой опыт в поддержке настольных компьютеров и программного обеспечения.
Автор статьи в журнале Linux Format, Кристиан — мастер Raspberry Pi, любитель Lego и фанат ретро-игр.
Ещё от Christian Cawley
Подпишитесь на нашу рассылку новостей
Подпишитесь на нашу рассылку, чтобы получать технические советы, обзоры, бесплатные электронные книги и эксклюзивные предложения!
Еще один шаг…!
Подтвердите свой адрес электронной почты в только что отправленном вам электронном письме.
.