- Вопрос или проблема
- Настройка – iSH как SSH-сервер в вашей локальной сети
- iSH как SSH-клиент (localhost)
- Настройка – SSH из WAN (открытый интернет)
- Ответ или решение
- Как использовать SSH на Alpine Linux с помощью iSH на iPad
- Проблема
- Решение
- 1. Создание нового пользователя
- 2. Генерация SSH-ключей
- 3. Запуск SSH-сервера
- 4. Определение IP-адреса
- 5. Подключение к SSH
- 6. Настройка ключевой аутентификации (опционально)
- Использование iSH в качестве SSH-клиента
- Подключение через внешний интернет (WAN)
- Заключение
Вопрос или проблема
Я пробую 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 к каким-либо устройствам, потому что:
- Не могу найти имя узла, только ‘root’
- Не удается получить IP-адрес хоста
- Но все работает нормально в 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 (открытый интернет)
-
_Настройте переадресацию портов на вашем роутере
- Что-то вроде:
- Исходный порт: 22 (порт клиентского устройства, если не изменен)
- Порт переадресации: 443 (многие роутеры разрешают SSH-трафик через этот порт)
- Порт назначения: 22 (порт, на котором слушает SSH-сервер)
- Что-то вроде:
-
Настройте брандмауэр на серверной машине, если это необходимо
- в ufw
- sudo ufw allow from clientipaddress to any app OpenSSH
- sudo ufw reload
- в ufw
-
Подключитесь, используя динамическую переадресацию порта
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, требует внимания к нескольким ключевым пунктам. Давайте разберем это пошагово.
Проблема
Вы столкнулись с рядом проблем:
- Пользовательская учетная запись: При выполнении команды
whoami
вы видите толькоroot
. Это может вызвать замешательство, особенно если вы хотите создать собственную учетную запись. - Поиск IP-адреса: Вы пытались узнать IP-адрес вашего iPad, используя команды
ifconfig
иhostname
, но они не принесли результатов. - 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-клиента
Для подключения к другим устройствам:
- Убедитесь, что iSH имеет доступ к локальной сети через настройки iPhone.
- Введите команду:
ssh имя_пользователя@IP_адрес_хоста
Подключение через внешний интернет (WAN)
Если вы хотите подключиться к вашему устройству из внешней сети:
- Настройте переадресацию портов на вашем маршрутизаторе.
- Откройте необходимые порты в брандмауэре, если это необходимо.
- Используйте динамическую переадресацию порта для соединения:
ssh -D 443 вашпользователь@ip_вашего_маршрутизатора
Заключение
Использование SSH в iSH на iPad может показаться сложным, но, следуя описанным шагам, вы сможете настроить связь и управлять устройствами в вашей сети. Не забывайте проверять конфигурацию SSH каждый раз после внесения изменений.
Ссылки для дальнейшего чтения: