Перейти к основному содержимому

🛠️ SSH и командная строка

Что такое SSH?

SSH расшифровывается как Secure Shell (защищённая оболочка) и обозначает протокол, позволяющий удалённо управлять машиной и администрировать её с помощью интерфейса командной строки (CLI). Он доступен по умолчанию в любом терминале GNU/Linux и macOS. В Windows вы можете использовать MobaXterm (после запуска нажмите «Сессия», затем «SSH»).

В компьютерном мире интерфейс командной строки (CLI) — это оригинальный (и более технически сложный) способ взаимодействия с компьютером по сравнению с графическим интерфейсом. Как правило, считается, что интерфейс командной строки более полный, мощный и эффективный, чем графический интерфейс, хотя и сложнее в освоении.

Как подключиться

Укажите учётные данные перед запуском postinstall

  • Если вы устанавливаете систему дома, учётные данные по умолчанию, логин: root и пароль: yunohost (или 1234, если вы установили образ Armbian)
  • Если вы устанавливаете систему на удаленный сервер (VPS), ваш провайдер должен был сообщить вам логин и пароль (или позволить вам настроить ключ SSH)

Учётные данные после выполнения команды postinstall

В процессе установки вам было предложено выбрать пользователя и пароль администратора. Эта учетная запись пользователя позволит вам подключаться к серверу через SSH. Пароль также станет новым паролем для пользователя root. Кроме того, вход через SSH для пользователя root будет отключен после установки, и вам следует входить в систему, используя учетную запись пользователя, созданную во время установки!. Единственное исключение — вы все еще можете войти в систему, используя пользователя root из локальной сети или непосредственно с консоли на сервере (это необходимо для случая, когда LDAP-сервер неисправен, и пользователи, входящие в группу admins, становятся недоступны).

подсказка

Если вы подключились к системе под учетной записью администратора и хотите получить права root для удобства (например, чтобы не вводить sudo перед каждой командой), вы можете сделать это с помощью команды sudo su или sudo -i.

Адрес для использования

Если вы устанавливаете приложение дома (например, на Raspberry Pi, OLinuXino или старый компьютер):

  • Вы должны иметь возможность подключиться к своему серверу, используя yunohost.local (или yunohost-2.local, в зависимости от количества серверов в вашей сети).
  • Если yunohost.local и подобные не работают, вам необходимо узнать локальный IP-адрес сервера.
  • Если вы установили сервер дома, но пытаетесь подключиться извне вашей локальной сети, убедитесь, что порт 22 правильно перенаправлен на ваш сервер.

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

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

Подключение

Команда SSH обычно выглядит следующим образом:

# before the postinstall:
ssh root@11.22.33.44

# or after the postinstall:
ssh username@11.22.33.44

# using the domain name instead of the IP (more convenient)
ssh username@your.domain.tld

# using the local domain name instead of the IP (for local access)
ssh username@yunohost.local

# if you changed the SSH port
ssh -p 2244 username@your.domain.tld
примечание

fail2ban заблокирует ваш IP-адрес на 10 минут, если вы совершите 10 неудачных попыток входа в систему. Если вам нужно разблокировать IP-адрес, ознакомьтесь со страницей о Fail2Ban

Какие ещё пользователи могут подключиться к серверу?

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

предупреждение

Будьте осторожны с тем, кому вы предоставляете доступ по SSH. Это может значительно увеличить поверхность атаки для злоумышленника.

Перейдите в раздел «Пользователи > Управление группами и разрешениями» (Users > Manage groups and permissions).

Здесь вы можете добавить права доступа по протоколам SFTP или SSH любому пользователю или группе.

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

Безопасность и SSH

Более подробную информацию о безопасности и SSH можно найти на специальной странице.

Командная строка

к сведению

Подробное руководство по работе с командной строкой выходит за рамки документации YunoHost; для этого лучше воспользоваться специализированными учебными материалами, например этим или этим. Однако не волнуйтесь: чтобы начать пользоваться командной строкой, не обязательно быть экспертом!

Команда yunohost

Команда yunohost позволяет администрировать сервер и выполнять различные действия, аналогичные тем, что доступны в веб-интерфейсе администрирования (Webadmin). Эту команду необходимо запускать либо от имени пользователя root, либо от имени пользователя, входящего в группу admins (в последнем случае перед командой следует указывать sudo. (Полезный совет™: если вы входите в группу admins, то можете переключиться на пользователя root с помощью командыsudo su).

Команды YunoHost обычно имеют следующую структуру:

yunohost app install wordpress --label Webmail
^ ^ ^ ^
| | | |
category action argument options

Не стесняйтесь изучать информацию и запрашивать дополнительные сведения о конкретной категории или действии с помощью опции --help. Например, следующие команды:

yunohost --help
yunohost user --help
yunohost user create --help

будут последовательно перечислены все доступные категории, затем действия, доступные в категории user, и, наконец, способы использования действия user create. Вы можете заметить, что дерево команд YunoHost по своей структуре напоминает страницы администрирования YunoHost.

Команда yunopaste

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

Пример:

tail -n 100 /var/log/mail.info | yunopaste

Команда ynh-vpnclient-loadcubefile.sh

Эта команда доступна и актуальна только при наличии установленного приложения VPN Client С её помощью можно загрузить новый файл .cube, если у вас нет доступа к интерфейсу VPN Client для выполнения этой операции.

ynh-vpnclient-loadcubefile.sh -u <username> -p <password> -c <path>.cube

Некоторые полезные команды

Если веб-интерфейс администрирования показывает, что API недоступен, попробуйте запустить yunohost-api:

systemctl start yunohost-api

Если вы больше не можете подключиться к пользователю из группыadmins по SSH или через веб-интерфейс, возможно, служба slapd остановлена; попробуйте перезапустить её:

systemctl restart slapd

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

yunohost tools regen-conf --with-diff --dry-run