🛠️ 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-ключ для пользователя, это необходимо сделать через командную строку, так как веб-интерфейс пока не поддерживает эту функцию.
Чтобы предоставить пользователю или группе доступ по SFTP или SSH:
# SFTP
yunohost user permission add sftp <username>
# SSH
yunohost user permission add ssh <username>
Чтобы удалить разрешение:
# SFTP
yunohost user permission remove sftp <username>
# SSH
yunohost user permission remove ssh <username>
Наконец, для повышения безопасности SSH-доступа можно добавлять и удалять SSH-ключи, а также выводить их список, используя следующие команды:
yunohost user ssh add-key <username> <key>
yunohost user ssh remove-key <username> <key>
yunohost user ssh list-keys <username>
Безопасность и SSH
Более подробную информацию о безопасности и SSH можно найти на специальной странице.
Командная строка
Команда 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