Как использовать SSH на Alpine Linux с iSH на iPad?

Вопрос или проблема

Я пробую Linux на iPad через приложение iSH, однако не могу найти свое имя пользователя, всегда возвращается ‘root’, когда я выполняю whoami. Теперь я запутался, как я могу подключиться по SSH к другому компьютеру или даже как подключиться по SSH к моему iPad, поскольку я пробовал множество команд, чтобы найти свой IP на iPad, но это просто не работает.

Например, я пробую ifconfig -a, но показывается /proc/net/dev: Нет такого файла или директории.

curl ifconfig.me работает для публичного IP, но мне нужен IP хоста для SSH, который не отображается.

Другой пример :

Mathewss-iPad:~# hostname -I

hostname: нераспознанная опция: I
BusyBox v1.31.1 () многофункциональный бинарный файл.

Использование: hostname [OPTIONS] [HOSTNAME | -F FILE]

Получить или установить имя узла или DNS-имя домена

        -s      Краткое
        -i      Адреса для имени узла
        -d      DNS-имя домена
        -f      Полностью определенное имя домена
        -F FILE Использовать содержимое FILE как имя узла

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

  1. Не могу найти имя узла, только ‘root’
  2. Не удается получить IP-адрес хоста
  3. Но все работает нормально в Linux APK, устанавливая пакеты, создавая папки, меняя каталоги и т. д.

Отказ от ответственности 1: Я запускал все это с iPhone 8 Plus со следующими характеристиками

  • iOS 15.4
  • Alpine 13.4
  • Версия 1.2.3

Отказ от ответственности 2: SSH-сервер не будет работать на iSH, когда приложение закрыто или работает в фоновом режиме.

Настройка – iSH как SSH-сервер в вашей локальной сети

Когда вы впервые устанавливаете iSH, вы начинаете как root. Если вы хотите создать нового пользователя:
adduser -g “Ваше Полное Имя”, затем введите пароль.

Как root, вы добавляете пароль, выполнив
echo ‘вашпароль’ | chpasswd

Если вы хотите предоставить привилегии doas (аналогично sudo) вашему новому пользователю без root-доступа:
как root…
apk add doas
– измените файл /etc/doas.conf, добавив строку:
permit вашеимяпользователя
– закройте и снова откройте приложение, затем войдите как пользователь

  • в качестве альтернативы вы можете раскомментировать строку
    permit persist :wheel
  • затем добавьте вашего пользователя в группу wheel
    adduser wheel

Чтобы создать ваши ключи хоста, выполните следующее от имени root:
ssh-keygen -A

На этом этапе измените файл /etc/ssh/sshd_config, чтобы запретить вход под root. Убедитесь, что у вас есть строки (раскомментированы)
PermitRootLogin no
PubkeyAuthentication yes
PasswordAuthentication yes

Отказ от ответственности 3: если вы не можете войти как ваш пользователь без root-доступа, то установите PermitRootLogin yes и устраните неисправность с помощью следующего:

ssh username@localhost -vvv  

Alpine использует openrc как свою программу инициализации, которая будет управлять запуском вашего sshd сервиса для каждой новой сессии iSH.

  • если вам нужно скачать openrc:
    apk add openrc

  • от имени root/sudo пользователя выполните
    rc-update add /usr/sbin/sshd default

затем
rc-service sshd start

проверьте, работает ли ваш sshd демон
rc-status default

Чтобы найти ваш IP, зайдите в настройки Wi-Fi вашего iPad, нажмите на информационный кружок ‘i’ рядом с именем вашей сети и найдите ваш IPv4-адрес.

Теперь с вашего клиентского устройства

ssh iSHusername@iSHipaddress

Вы можете настроить аутентификацию на основе ключей для более безопасного доступа
ssh-keygen -t ed25519

 _введите абсолютный путь к вашей клиентской папке .ssh и пароль (необязательно)_

- Скопируйте открытый ключ на вашу хост-машину.
    ssh-copy-id -i *pathtopubkey* iSHusername@iSHipaddress

- Перезагрузите службу sshd
    rc-service sshd reload

Подтвердите, что служба работает
rc-status default

_вы должны делать это каждый раз, когда вносите изменения в файлы конфигурации_

iSH как SSH-клиент (localhost)

В настройках вашего iPhone убедитесь, что iSH имеет доступ к локальной сети, затем
ssh hostuser@hostipaddress

Настройка – SSH из WAN (открытый интернет)

  1. _Настройте переадресацию портов на вашем роутере

    • Что-то вроде:
      • Исходный порт: 22 (порт клиентского устройства, если не изменен)
      • Порт переадресации: 443 (многие роутеры разрешают SSH-трафик через этот порт)
      • Порт назначения: 22 (порт, на котором слушает SSH-сервер)
  2. Настройте брандмауэр на серверной машине, если это необходимо

    • в ufw
      • sudo ufw allow from clientipaddress to any app OpenSSH
      • sudo ufw reload
  3. Подключитесь, используя динамическую переадресацию порта
    ssh -D 443 username@routeripaddress

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

Источники:
https://wiki.alpinelinux.org/wiki/OpenRC
https://github.com/ish-app/ish/wiki/Running-an-SSH-server
https://www.youtube.com/watch?v=AtuAdk4MwWw
страницы man для ssh-keygen, ssh, sshd, sshd_config, ssh-copy-id

Ответ или решение

Как использовать SSH на Alpine Linux с помощью iSH на iPad

Вопрос о том, как установить и использовать SSH с Alpine Linux через приложение iSH на iPad, требует внимания к нескольким ключевым пунктам. Давайте разберем это пошагово.

Проблема

Вы столкнулись с рядом проблем:

  1. Пользовательская учетная запись: При выполнении команды whoami вы видите только root. Это может вызвать замешательство, особенно если вы хотите создать собственную учетную запись.
  2. Поиск IP-адреса: Вы пытались узнать IP-адрес вашего iPad, используя команды ifconfig и hostname, но они не принесли результатов.
  3. SSH-соединение: Вы не можете осуществить SSH-соединение ни с iPad, ни с другими устройствами в сети.

Решение

1. Создание нового пользователя

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

adduser -g "Ваше полное имя"

Затем задайте пароль для нового пользователя:

echo 'вашпароль' | chpasswd

При необходимости предоставьте новому пользователю права doas, аналогичные sudo:

apk add doas
vi /etc/doas.conf

Добавить строку:

permit вашпользователь

Закройте и перезапустите приложение iSH, чтобы выполнить вход под новым пользователем.

2. Генерация SSH-ключей

Создайте ключи SSH для безопасного доступа:

ssh-keygen -A

Измените файл конфигурации SSH:

vi /etc/ssh/sshd_config

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

PermitRootLogin no
PubkeyAuthentication yes
PasswordAuthentication yes

3. Запуск SSH-сервера

Теперь установите и запустите SSH-сервер:

apk add openrc
rc-update add /usr/sbin/sshd default
rc-service sshd start

Проверьте, работает ли демон SSH:

rc-status default

4. Определение IP-адреса

Чтобы найти IP-адрес вашего iPad, перейдите в настройки Wi-Fi на iPad, нажмите на иконку информации (i), рядом с вашим сетевым именем, и найдите IPv4-адрес.

5. Подключение к SSH

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

ssh вашпользователь@вашIPадрес

6. Настройка ключевой аутентификации (опционально)

Для улучшения безопасности используйте ключевую аутентификацию:

ssh-keygen -t ed25519

Скопируйте открытый ключ на ваш iSh:

ssh-copy-id -i путь_к_публичному_ключу вашпользователь@вашIPадрес

Перезагрузите службу SSH:

rc-service sshd reload

Использование iSH в качестве SSH-клиента

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

  1. Убедитесь, что iSH имеет доступ к локальной сети через настройки iPhone.
  2. Введите команду:
ssh имя_пользователя@IP_адрес_хоста

Подключение через внешний интернет (WAN)

Если вы хотите подключиться к вашему устройству из внешней сети:

  1. Настройте переадресацию портов на вашем маршрутизаторе.
  2. Откройте необходимые порты в брандмауэре, если это необходимо.
  3. Используйте динамическую переадресацию порта для соединения:
ssh -D 443 вашпользователь@ip_вашего_маршрутизатора

Заключение

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

Ссылки для дальнейшего чтения:

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

Капча загружается...