🍏 아이패드에서 코딩하기

아이패드에서도 VScode를 사용해 코딩을 할 수 있는 방법에 대해 이전 포스팅에서 다루어 보았습니다. 해당 방법은 가벼운 코드를 돌리기에는 문제가 없으나, ssh 접속은 어렵습니다.

반면에 해당 포스팅은 기본 세팅이 끝나면 아이패드 하나만으로 ssh 접속을 자유롭게 할 수 있습니다.

🛠️ 선행 설치

  • blink shell 어플리케이션 (유료 어플리케이션, 25,000원)

    아이패드 환경에서 ssh 접속을 끊기지 않게 하는 기능인 mosh는 현재 blink shell에서만 지원되기 때문에 반드시 blink shell 어플리케이션을 다운로드 받아야 합니다.

    결제는 애플 계정 단위로 한 번만 이루어지므로, 한 번 다운받으면 같은 애플 계정을 사용하는 아이폰, 아이패드에 모두 다운받을 수 있습니다.

  • 개발 서버로 사용할 클라우드 인스턴스

    평생 무료 클라우드 인스턴스를 만드는 방법은 이 포스팅을 참고하세요.

기본 세팅을 진행하기 위해 blink shell을 실행합니다.

blink shell 실행화면

기본 화면이 매우 간단합니다.

이 상태에서 config 을 입력하거나, 스마트폴리오 등 키보드를 연동하여 사용중인 경우 cmd + , 을 눌러 설정 창에 진입합니다.

상단 CONNECT 3개 메뉴에 대한 설명은 아래에 기술합니다.

  • keys
  • hosts
  • default user

🗝️ Keys

Keys는 SSH Key를 의미합니다.

blink shell을 이용하면 아이패드에서도 손쉽게 새 RSA Key를 만들 수 있습니다.

새 ssh key로 로그인

blink shell 어플리케이션을 통해 새 rsa key를 만들고, 콘솔/기존 접속하던 환경을 통해 접속하려는 서버에 로그인한 뒤 만들어진 key pair 중 pub key 값을 복사하여 아래 파일 최하단에 붙여넣습니다.

sudo nano ~/.ssh/authorized_keys

기존 private key 복사하기

private key는 값이 알려지면 보안에 큰 결함이 생기기 때문에, 키값을 노출하는 것을 추천할 수 없습니다. 그러므로 아이패드에서는 위 챕터의 방식을 통해 로그인하는것이 바람직하나 필요에 따라 pc에서 평소 사용하던 private key를 복사하는 것도 가능합니다.

5

필요시 위 이미지와 같이 텍스트 편집기에 드래그하여 내용을 복사 한 뒤 아래 화면의 import from clipboard를 클릭하면 붙여넣어집니다.

6

❌ 오류가 날 경우

클립보드를 선택했음에도 키 값이 붙여지지 않고 오류가 나는 이유는 private key 값이 아닌 public key 값을 복사했기 때문입니다.

만약 private key를 icloud에 보관중이라면 3번째 import from a file을 통헤 첨부하면 key 복사가 완료됩니다.

🤼 hosts

pc의 ~/.ssh/config 파일의 역할을 하는 메뉴입니다.

만약, ~/.ssh/config 파일을 사용하지 않거나 더 알아보려면 이 포스팅을 참고하세요.

설정한 host 명으로 손쉽게 ssh 로그인이 가능합니다.

ex) ssh port

💻 default user

기본적으로 Default User명은 User로 세팅되어 있으나 자주 사용하는 user명으로 변경할 수 있습니다.

하지만 이대로 접속만 할 경우 ssh 서버가 종료되는 일이 반복됩니다. 이를 막기 위해 mosh를 설치합니다.

⚙️ Mosh 설치

아래 커맨드로 간단히 설치할 수 있습니다.

sudo su

sudo apt-get install mosh

설치 중 continue가 반환되면 y를 눌러줍니다.

설치가 완료되면 ssh port 대신 mosh port를 이용하여 접속을 시도할 수 있습니다. 하지만, 이 전에 반드시 60000-61000번 포트를 열어주어야 합니다.

🚰 60000-61000 포트 오픈

60000-61000 포트 오픈

만일, 위 이미지와 같은

mosh: Nothing received from server on UDP port 60001

오류가 출력되는 이유는 아래와 같습니다. mosh가 사용하는 60000~61000번 포트가 닫혀있어 통신을 할 수 없다는 의미입니다.

☁️ 클라우드 보안 그룹 설정

사용하는 클라우드 서비스 보안 그룹 인바운드 설정에서 60000-61000 포트를 열어줍니다.

iptables 설정

📱 iptables 설정

오라클 클라우드의 경우에는 iptables 설정을 동시에 진행하여야 합니다.

iptables에서 60000-61000번 포트를 허용합니다.

iptables 설정

sudo iptables -I INPUT 1 -p udp -m multiport --dports 60000:61000 -j ACCEPT

재부팅시도 초기화되지 않도록 해당 방화벽 설정을 저장합니다.

sudo netfilter-persistent save

클라우드에서 60000-61000 port open, iptables에서 60000-61000번 포트 오픈까지 완료하였다면 다시 접속을 시도합니다.

mosh port

iptables 설정

아이패드(ipad)에서 ssh 접속이 가능한 코딩 환경 구성이 완료되었습니다.