如何在 ipad 上使用 iSH 在 alphine linux 上进行 SSH?

如何在 ipad 上使用 iSH 在 alphine linux 上进行 SSH?

我正在通过 iSH 应用程序在 iPad 上尝试 Linux,但是,我似乎找不到我的用户名,当我执行 whoami 时它总是返回“root”。所以现在我很困惑如何 ssh 到另一台计算机,甚至如何 ssh 到我的 ipad,因为我尝试了多个命令来在 ipad 上查找我的 IP,但它不起作用。

例如,我尝试 ifconfig -a 但它显示 /proc/net/dev: 没有这样的文件或目录。

curl ifconfig.me 适用于公共 IP,但我需要 ssh 的主机 IP,但它没有显示给我。

另一个例子 :

Mathewss-iPad:~# hostname -I

hostname: unrecognized option: I
BusyBox v1.31.1 () multi-call binary.

Usage: hostname [OPTIONS] [HOSTNAME | -F FILE]

Get or set hostname or DNS domain name

        -s      Short
        -i      Addresses for the hostname
        -d      DNS domain name
        -f      Fully qualified domain name
        -F FILE Use FILE's content as hostname

问题:无法通过 SSH 连接到我们的任何设备,因为:

  1. 找不到主机名只是“root”
  2. 无法检索主机 IP 地址
  3. 但在linux apk安装包、创建文件夹、更改目录等方面一切正常。

答案1

免责声明 1:我在具有以下规格的 iPhone 8 Plus 上运行了所有这些内容

  • iOS 15.4
  • 高山13.4
  • 版本1.2.3

免责声明 2:当应用程序关闭/在后台运行时,ssh 服务器不会在 iSH 上运行。

设置 - iSH 作为本地网络上的 ssh 服务器

首次安装 iSH 时,您将以 root 身份开始。如果您想创建新用户:adduser -g“您的全名”,然后输入密码。


作为 root,您可以通过运行echo 'yourpassword' |添加密码。密码

假设您希望向新的非 root 用户授予 doas(如 sudo)权限:作为 root... apk add doas - 使用以下行修改 /etc/doas.conf 文件:permit您的用户名 - 关闭并重新打开应用程序,然后以用户身份登录

  • 或者,您可以取消注释行 Permit persist :wheel
  • 然后将您的用户添加到wheel组
    adduserwheel

要创建主机密钥,请以 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 作为其 init 程序,它将管理每个新 iSH 会话的 sshd 服务的启动。

  • 如果需要下载openrc:apk添加openrc

  • 作为 root/sudo 用户,运行 rc-update add /usr/sbin/sshd default

然后 rc-service sshd 启动

检查您的 sshd 守护进程是否正在运行 rc-status default

要查找您的 IP,请进入 iPad 的 Wi-Fi 设置,点击网络名称旁边的“i”信息圆圈,然后查找您的 IPv4 地址。

现在从您的客户端设备

ssh iSHusername@iSHipaddress

您可以设置基于密钥的身份验证以实现更安全的访问 ssh-keygen -t ed25519

 _enter an absolute path to your client .ssh folder and a passphrase (optional)_

- Copy the public key to your host machine.
    ssh-copy-id -i *pathtopubkey* iSHusername@iSHipaddress

- Reload sshd service
    rc-service sshd reload

确认服务正在运行 rc-status default

_you should do this everytime you make changes to the config files_

iSH 作为 ssh 客户端(本地主机)

在您的 iPhone 设置中,确保 iSH 可以访问本地网络,然后 ssh hostuser@hostipaddress

设置 - 来自 WAN(开放互联网)的 ssh

  1. _在路由器上设置端口转发

    • 就像是:
      • 源端口:22(客户端设备的端口,除非修改)
      • 转发端口:443(许多路由器允许通过此端口进行 ssh 流量)
      • 目标端口:22(ssh服务器监听的端口)
  2. 如有必要,在服务器计算机上配置防火墙

    • 在 UFW
      • sudo ufw 允许从 clientipaddress 到任何应用程序 OpenSSH
      • 须藤 ufw 重新加载
  3. 使用动态端口转发进行连接 ssh -D 443 用户名@路由地址

    重新运行命令,并-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 ssh-keygen、ssh、sshd、sshd_config、ssh-copy-id 的手册页

相关内容