ipad에서 iSH를 사용하여 alphine linux에서 SSH를 사용하는 방법은 무엇입니까?

ipad에서 iSH를 사용하여 alphine linux에서 SSH를 사용하는 방법은 무엇입니까?

iSH 앱을 통해 내 iPad에서 Linux를 사용하려고 하는데 내 사용자 이름을 찾을 수 없는 것 같고 whoami를 실행하면 항상 "root"가 반환됩니다. 이제 ipad에서 내 IP를 찾기 위해 여러 명령을 시도했지만 작동하지 않기 때문에 다른 컴퓨터로 ssh하는 방법이나 ipad로 ssh하는 방법에 대해 혼란스러워졌습니다.

예를 들어, ifconfig -a를 시도했지만 /proc/net/dev: No such file or Directory가 표시되었습니다.

컬 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. 찾을 수 없는 호스트 이름은 "루트"입니다.
  2. 호스트 IP 주소를 검색할 수 없습니다.
  3. 하지만 리눅스 APK 설치 패키지, 폴더 생성, 디렉토리 변경 등의 모든 것이 정상입니다.

답변1

면책조항 1: 저는 이 모든 것을 다음 사양의 iPhone 8 Plus에서 실행했습니다.

  • iOS 15.4
  • 알파인 13.4
  • 버전 1.2.3

고지 사항 2: 애플리케이션이 백그라운드에서 닫히거나 실행 중인 경우 SSH 서버는 iSH에서 실행되지 않습니다.

설정 - iSH를 로컬 네트워크의 SSH 서버로 설정

iSH를 처음 설치하면 루트로 시작됩니다. 새 사용자를 생성하려면: adduser -g "your full name"을 입력한 다음 비밀번호를 입력하세요.


루트로서 echo 'yourpassword' | 비밀번호

루트가 아닌 새로운 사용자에게 doas(예: sudo) 권한을 부여하려고 한다고 가정합니다. 루트로... apk add doas - 다음 줄을 사용하여 /etc/doas.conf 파일을 수정합니다.당신의 사용자 이름 - 애플리케이션을 닫았다가 다시 열고 사용자로 로그인합니다.

  • 또는 Permit persist :wheel 줄의 주석 처리를 제거할 수도 있습니다.
  • 그런 다음 휠 그룹
    adduserwheel 에 사용자를 추가하십시오.

호스트 키를 생성하려면 루트로 다음 명령을 실행하십시오: ssh-keygen -A

이 시점에서/etc/ssh/sshd_config루트 로그인을 방지하기 위한 파일입니다. 다음 줄이 있는지 확인하세요(주석 없음) PermitRootLogin no PubkeyAuthentication yes PasswordAuthentication yes

고지 사항 3: 루트가 아닌 사용자로 로그인할 수 없는 경우 PermitRootLogin을 yes로 설정하고 다음 방법으로 문제를 해결하십시오.

ssh username@localhost -vvv  

Alpine은 각각의 새로운 iSH 세션에 대한 sshd 서비스 시작을 관리하는 init 프로그램으로 openrc를 사용합니다.

  • openrc를 다운로드해야 하는 경우: apk add openrc

  • 루트/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_

SSH 클라이언트로서의 iSH(localhost)

iPhone 설정에서 iSH가 로컬 네트워크에 액세스할 수 있는지 확인한 다음 ssh hostuser@hostipaddress

설정 - WAN에서 SSH(개방형 인터넷)

  1. _라우터에서 포트 전달 설정

    • 그것은 다음과 같습니다:
      • 소스 포트: 22(수정되지 않은 경우 클라이언트 장치의 포트)
      • 전달 포트: 443(많은 라우터가 이 포트를 통한 SSH 트래픽을 허용함)
      • 대상 포트: 22(Ssh 서버가 수신 대기하는 포트)
  2. 필요한 경우 서버 컴퓨터에서 방화벽을 구성합니다.

    • UFW에서
      • sudo ufw는 clientipaddress에서 모든 애플리케이션으로의 OpenSSH를 허용합니다.
      • sudo 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에 대한 매뉴얼 페이지

관련 정보