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를 통해 연결할 수 없습니다.
- 찾을 수 없는 호스트 이름은 "루트"입니다.
- 호스트 IP 주소를 검색할 수 없습니다.
- 하지만 리눅스 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(개방형 인터넷)
_라우터에서 포트 전달 설정
- 그것은 다음과 같습니다:
- 소스 포트: 22(수정되지 않은 경우 클라이언트 장치의 포트)
- 전달 포트: 443(많은 라우터가 이 포트를 통한 SSH 트래픽을 허용함)
- 대상 포트: 22(Ssh 서버가 수신 대기하는 포트)
- 그것은 다음과 같습니다:
필요한 경우 서버 컴퓨터에서 방화벽을 구성합니다.
- UFW에서
- sudo ufw는 clientipaddress에서 모든 애플리케이션으로의 OpenSSH를 허용합니다.
- sudo ufw 다시 로드
- UFW에서
동적 포트 전달을 사용하여 연결 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에 대한 매뉴얼 페이지