티스토리 뷰

iPad

Blink shell: mosh & SSH client 사용법

superroot 2021. 7. 13. 17:59
반응형

Blink shell: mosh & SSH client 사용법

Blink shell: mosh & SSH clinet 사용법

평소에 ssh client를 사용해서, 모의 해킹 서버에 접속해서 Level Up을 하는 것을 좋아합니다. 지금은 Over the Wire의 Bandit33 Level까지 모두 비밀번호를 획득해서 자주 접속하지는 않지만, 간혹 들어가서 이것저것 다시 시도해봅니다.

개발자의 경우 코딩 및 컴파일을 위해서 종종 우분투 서버에 많이 접속할 텐데요, Blink shell 정말 강추합니다.

제 경우에는 web ssh라는 ipad 앱 또는 Ubuntu, Kali Terminal에서 주로 ssh를 사용했는데요, 아이패드 web ssh 프로그램으로 bandit 서버에 접속하고 모의 해킹 문제를 풀다가 잠깐 웹 브라우저에서 검색을 하는 사이, ssh 접속이 끊어지는 경우가 많았습니다.

개발자가 코딩을 하다가 잠깐 reference를 찾기 위해 검색을 하는 사이, 접속이 끊어지면 좀 곤란하겠지요?
Blink shell의 최대 장점이 이 접속이 끊어지지 않는 것입니다. 또한 화면에 불필요한 메뉴 같은 것이 전혀 없이 터미널 화면만 보이기 때문에 아이패드와 같은 장비에서도 전체 화면을 사용할 수 있습니다.

 

Blink shell 키보드 단축키

Blink shell: 키보드 단축키 확인하는 법

처음 Blink shell 앱을 실행하면 blink> 프롬프트만 나오고 덩그러니 검은 터미널만 보이게 됩니다.
shell은 일종의 명령어 interpreter인데요, 리눅스에서 sh, bash, csh, zsh 등이 바로 이러한 shell입니다.

당황하지 말고 먼저, 키보드의 Win 버튼을 꾹 누르고 있으면 화면에 플로팅 메뉴가 나타납니다.
기본적인 복사, 붙여넣기, 새로운 Tab, Tab 전환에 대한 단축키를 기억하고 계시면 좋습니다.
물론 제스처 기능을 통해서도 새로운 Tab, Tab 전환도 가능합니다.

blink shell 'help' 명령어

Blin shell: help 명령어

기본적인 사용법을 확인하기 위해 help 를 입력하고 Enter를 입력합니다.
아이콘과 함께 제스처 명령어 사용법 및 기본적인 사용법이 간단하게 표시됩니다.

blink shell 'help'

Blink shell: 지원 명령어 List

Blink shell에서 사용할 수 있는 명령어가 궁금하면 Tab키를 누르시면 사용할 수 있는 명령어들이 모두 표시됩니다.
기본적인 리눅스 명령어들이 많이 포함되어 있습니다.

ssh-keygen 명령어 역시 사용 가능합니다. 기존에 사용하던 web ssh 앱의 경우, ssh-keygen 명령이 불가능하기 때문에 public key 및 private key를 생성할 수 없었습니다. 그래서 private key만을 등록시켜서 사용해야 하는데, private key는 암호화 뿐만 아니라 복호화까지 가능하기 때문에 외부로 노출되면 상당히 위험하지요.

Blink shell에서는 기본 설치 시 Default public key와 private key가 자동으로 생성되며, 필요에 따라 추가도 가능합니다.

blink shell 지원 명령어 List

Blink Shell: 환경설정 및 New Host

Win + , 를 입력하거나 프롬프트에 config 명령어를 입력하면 환경설정 메뉴를 볼 수 있습니다.
'테마', Key 설정, Host 설정, Font 설정 등 Blink Shell 관련한 환경 설정을 할 수 있습니다.

Blink shell 'New Host'

첫 줄에 보이는 Host 부분에는 사용자가 알아보기 쉬운 이름을 임의로 지정하는 항목입니다. ssh host 주소를 전체 입력할 필요가 없습니다.

서버 관련 정보는 ssh 항목에 hostname, user, port, password 등을 입력하시면 됩니다. 서버에 public key를 등록하셨다면 key에서 해당 public key를 선택하시면 됩니다. 서버에. ssh 폴더에 authorized_key 또는 authorized_key2에 해당 key를 추가해 주셔야 사용이 가능합니다.

bandit13이라는 일종의 호스트 닉네임을 설정하였으며, 설정 이후에 ssh bandit13과 같이 입력하면, ssh 부분에 설정해둔 서버 주소, 아이디, 비밀번호가 자동으로 입력되며 해당 서버에 연결이 됩니다.

Blink shell 'config'

Host에 bandit13이라는 닉네임으로 Host를 설정하였기 때문에 ssh b까지만 입력해도 약한 노란색으로 bandit13 이 보이게 됩니다. 이때 리눅스처럼 Tab키를 눌러주면 나머지 bandit13까지 자동으로 완성이 됩니다.

Enter키를 누르면 해당 Host에 자동으로 접속이 됩니다.

blink shell 'ssh'

서버에 접속하여 htop 명령어를 실행하고, process를 확인하는 화면입니다.
우분투에서 보는 화면과 거의 동일하지요.

저 이외에 다른 사용자가 접속해서 다음 레벨로 접속했네요. ㅎㅎ private key가 저렇게 위험합니다.
노출되면 바로 ssh 명령어를 사용해서 접속할 수 있지요.

blink shell 'ssh-htop'

bandit 서버에 접속할 때 기존에는 web ssh 앱을 사용했습니다.

기존 Host 등록 파일을 복제해서 Level up 때마다 User 이름과 획득한 Password만 바꿔주면 언제든 다시 해당 서버에 접속해서 계속 모의 해킹 연습을 할 수 있었기 때문입니다.

web ssh

Level up 할 때마다 Host를 복제하고, User와 Pass만 바꿔주면 손쉽게 연결이 가능한 것이 장점이지만, web ssh는 접속 후 reference를 찾기 위해 인터넷을 잠깐 하다 보면 접속이 끊기는 단점이 있습니다.

모의 해킹을 위한 코드 작성 시에는 임의로 /tmp/사용자 ID 폴더를 생성해서 그 내부에 코드를 작성해서 작성 코드가 남아있기는 하였지만, 다시 접속해서 해당 폴더로 이동, 파일을 다시 편집하는 것이 조금 번거롭더군요.

web ssh host 복제 기능

Blink shell은 ssh로 접속을 하게 되면, Blink shell을 종료하기 전까지 터미널이 연결 상태로 유지가 됩니다. 하지만 단점은 등록한 Host를 "복제"할 수 없습니다. 메뉴를 스와이프 하면 "Delete"만 가능하지요.

Level Up 후 hostname, port, user, password 각각 다 다시 등록시켜줘야 하는 번거로움이 있습니다.

하지만, 이런 모의해킹용 서버가 아닌 개발자 서버만 등록시켜두고 사용한다면 큰 불편함은 없습니다.

blink shell - host 등록 및 삭제

Blink shell: mosh 사용법

mosh라고 mobile shell이 있습니다. 이 기능은 서버에 mosh가 설치되어 있어야 사용이 가능한 기능입니다.

mosh 입력 이후 사용자 id@서버 접속 주소와 같이 ssh 사용과 동일하게 명령어를 사용해서 접속이 가능합니다.

mosh의 경우, 지하철이나 이동 중인 환경에서 모바일 기기를 이용해서 코딩을 하는 경우 인터넷이 간혹 끊기면 작업이 중단되지요. mosh를 사용하게 되면 인터넷이 끊기고 다시 연결되어도 기존 연결 상태가 끊기지 않고 유지가 됩니다.

이것이 가장 매력적인 기능이지요.

 

 


mosh - mobile shell

config 명령 후 'Host'에 서버 정보를 등록하는데요, 하단에 mosh 부분에서 구체적으로 mosh의 위치 및 포트 등을 설정할 수 있습니다.

ssh는 기본적으로 tcp 22번 포트를 사용하지만, mosh는 UDP 포트를 사용하며 방화벽 설정 및 포트 포워딩까지 해두지 않으면 연결에 문제가 생길 수 있습니다.

mosh 위치

sudo apt-get install mosh
which mosh

mosh가 설치되지 않았다면 서버에서 sudo apt-get install mosh 명령어로 설치가 가능합니다.
mosh 위치를 확인하려면 which mosh 명령어를 입력합니다.
기본적은 위치는 /usr/bin/mosh 입니다.

blink shell - ssh to Kali

WSL2에 설치한 Kali Linux에 SSH로 접속해봤습니다.

Blink shell - ssh - Kali(WSL2)

mosh는 UDP60001-61000 포트까지 별도로 포트포워딩을 해줘야 합니다.

제 경우에는 단지 윈도 방화벽에 22, 80, 443번 포트만 규칙을 추가해두었고, 공유기 포트포워딩 규칙도 역시 관련 포트만 설정해두었더니, mosh로 접속하려고 하자 다음과 같은 에러가 발생했습니다.

공유기에 포트포워딩 규칙 등록, 방화벽에서 해당 포트 허용을 해주셔야 정상적인 mosh 사용이 가능합니다.

저는 mosh를 사용할 것 같지 않아서 포트포워딩 규칙을 추가하지 않았습니다.

mosh port : UDP60001-61000

 

반응형
댓글