본문 바로가기
320x100
320x100

https://code-boki.tistory.com/143

 

원격 서버 접속하기(5) - telnet, ssh 차이점(feat. wireshark)

https://code-boki.tistory.com/135 원격 서버 접속하기(1) - telnet/ssh입사를 해서 회사 일을 해보면, 이런 단어들을 들어볼 수 있을 것이다 로컬 서버, 개발 서버, 스테이징 서버, 배포 서버, 테스트 서버 등

code-boki.tistory.com

앞선 글에 이어서 ssh 접속을 다른 방법으로 해본다

 

바로 Termius라는 MacOS전용 프로그램을 사용하는 것이다

언제 지원하는 플랫폼이 늘었지!?

2022년 기준으로는 MacOS에서밖에 사용을 못했던거같은데... 회사가 커졌나부다

대체품: MobaXterm, PuTTY(Windows), SquidShell 등등...

공식사이트

https://termius.com/ 

 

Termius - SSH platform for Mobile and Desktop

Termius helps to organize the work of multiple DevOps and engineering teams. It reduces the admin work for managing users. Enterprise compliance. SOC2 II report.

termius.com

공식사이트 다운로드 URL

https://termius.com/download/macos

 

Download Termius for Mac

 

termius.com

들어가보면 iOS(아이폰)이나 안드로이드의 경우에 각각 앱스토어, 구글스토어에서 앱을 다운받을 수도 있고, macOS, Windows, Linux 등의 OS에서 설치파일을 다운받아서 사용할 수도 있다

Plan은 이렇게 되는데, 사실 SSH&SFTP, Local Vault(민감정보 보안), Port Forwading 등만 제공해도 정말 Powerful하다

 

macOS에서는 AppStore에서도 받을 수 있다.. 하지만.....ㅋㅋ

평점도 높다

리뷰도 좋다

 

하지만 나는 공식 홈페이지에서 다운받아서 쓸것이다

M1 Mac을 사용하고 있기 때문에 .dmg 확장자를 가진다

편한 방법으로 다운받고 설치한다음에 앱을 실행시켜보자

아마도 로그인을 하라고 할건데.. 오래오래 이쁘게 잘 사용할거같으면 가입하고, 로그인하자

IP또는 hostname으로 Create host를 할 수도 있고, 기존에 쓰던 PuTTY, MobaXterm, ~/.ssh/config 등에서 설정을 Import 할수도 있다!!

가운데에 있는 Setup integrations는 Pro Plan을 해야지만 쓸 수 있다

 

New Host

address, label, ssh정보(username/password) 입력 후 Connect

서버 접속 정보를 known_hosts 파일에 추가할 것인지 물어보는것 Add and continue 클릭

등록된 서버정보 확인 완료

접속 성공. 추가로 tab의 자동완성 기능도 제공한다

추가로 다른 명령어를 테스트해봤다

 

이번에는 ID/PW가 아닌 개인키로 접속해보자

톱니바퀴 버튼 클릭

Keychain 메뉴에서 SSH Key Add 클릭

Label만 작성하고...!!

아래의 명령어로 ssh폴더를 열어보자

sudo open ~/.ssh

개인키 아무거나 끌어서 저기 Drag & Drop

설정 창 닫고 Hosts 탭의 서버 정보 수정

기존에 쓰던 password 삭제 해주고

key를 선택하고 아까 만들어둔 키를 선택한다

접속 성공!!

Icon, Tag, Group

> 접속하는 서버에 따라 다른 아이콘 모양

접속설정 태그 추가

> 태그 필터링 조회

> 그룹별 모아보기

Multiple Session(Tab/Split View)

Tab 또는 Split View로 여러개의 Connection(Session)을 만들 수 있다

> 여러개의 탭으로 관리

> 분할된 뷰로 관리

탭을 마우스로 끌어다 놓으면 간단하게 가능하다

Rename으로 여러 탭을 특정 이름으로 관리할 수도 있다

여러 Tab을 만들면 원격서버에는 여러 세션을 만든다

Theme

Termius에서 제공하는 여러 테마로 변경 가능

Hosts탭에서 특정서버에 마우스 호버하면 생기는 수정 버튼 클릭

아래로 내려 Show more 서브메뉴 클릭

다양한 테마 선택 가능

Material Dark 선택

바뀐 테마

SFTP

SCP 커맨드.. 나 잘 쓰고 있긴하고 2024년에도 잘 되지만, 앞으로의 지원은 없기로 2020년에 이미 발표를 했었다

https://lwn.net/Articles/835962/

대신 SFTP나 RSYNC를 사용하라고 한다

SFTP도 명령어지만, Well Wrapping Termius SFTP UI를 이용해서 파일을 전송해보자

SFTP 탭을 클릭

혹시 이 화면이 뜨지 않고...

이런 화면이 뜬다면.....ㅋ

macOS에서는 AppStore에서도 받을 수 있다.. 하지만.....ㅋㅋ 

위에 이런 문구를 적었던 것을 기억하는가..?

 

그럼 저 메시지를 읽어서 트러블슈팅을 해보자

친절하게 나와있다

Local Terminal is not available in a sandbox

> 로컬 터미널은 Sandbox에서 불가능하다

나는 처음에 SFTP하려는데 웬 로컬 터미널?이라서 당황했었다..

결론적으로 AppStore에서 Termius를 받아서 그렇다

 

ChatGPT에게 물어봤다

Q. Sandbox가 뭐야?
A. "Sandbox"란 운영 체제 (예: macOS)에서 실행되는 응용 프로그램의 보안 기능 중 하나입니다. 앱이 "Sandbox" 모드로 실행되면, 해당 앱은 운영 체제의 다른 부분과 격리되어 있으며 다른 시스템 리소스에 접근하는 것이 제한됩니다. 이러한 보안 조치는 악성 코드나 앱의 잘못된 동작으로부터 시스템을 보호하기 위한 것입니다.
따라서 "Termius" 앱이 macOS App Store나 Snap Store에서 다운로드되면, 이 앱은 "Sandbox" 모드로 실행되며 로컬 드라이브에 접근하는 것과 같은 일부 기능이 제한됩니다. 이것이 "Termius" 앱이 로컬 터미널 옵션을 사용할 수 없는 이유입니다. "Sandbox"로 실행되면 로컬 드라이브 및 시스템 리소스에 대한 액세스 권한이 제한되므로 이러한 제한으로 인해 로컬 터미널 옵션을 사용할 수 없게 됩니다.

Q. AppStore에 앱을 올릴때는 Sandbox mode인 App만 올릴 수 있어?
A. 네, App Store에 앱을 올릴 때, macOS에서 실행되는 앱은 기본적으로 "Sandbox" 모드로 실행되어야 합니다. Apple은 macOS 앱의 보안 및 안전성을 확보하기 위해 "Sandboxing"을 강력히 권장하고 있으며, 이는 App Store에서 제출하는 앱에 대한 필수 조건 중 하나입니다."Sandboxing"은 앱이 시스템 리소스 및 사용자 데이터에 대한 접근을 제한하여 앱이 악의적인 목적으로 시스템에 피해를 줄 가능성을 최소화합니다. 이러한 보안 조치는 사용자의 개인 정보와 시스템의 안전성을 유지하는 데 도움이 되며, 앱 간 간섭을 방지하여 시스템의 안정성을 유지합니다.따라서 App Store에 앱을 제출하려면 해당 앱을 "Sandboxed" 모드로 구성하여야 하며, Apple의 지침을 따라야 합니다. 이렇게 하면 앱이 macOS 환경에서 안전하게 실행될 수 있으며 사용자들에게 더 안전한 경험을 제공할 수 있습니다.

 

걍 맘편히 위로 올라가서 웹사이트에서 다운받자..

그러면!! FileZilla보다 더 이쁜 UI로.. 쓸 수있다

왼쪽이 Local, 우측이 Remote이다

파일을 그냥 Drag&Drop으로 끌어다 놓으면 안전하게 복사 또는 이동을 할 수 있다

> Local의 pika.png를 Remote로 옮겼다

한 번 더 옮기려고 하면 파일이 이미 있는데.. 어떻게 할 거냐 물어본다

어떤 파일에 대한 권한 변경도 UI로 가능하다!

원래는 chmod 커맨드를 써야 하는데..

 

Trouble Shooting - 한글깨짐

Termius는 SSH로 접속하면서 locale을 자기맘대로 초기화하는것 같다

왜냐하면...

원격 컴퓨터에서 locale 명령어를 입력하면 ko_KR.UTF-8로 되어있지만

Termius의 SSH로 접속한 후 locale을 보면 C로 되어있다..

그럼 이게 뭐가 문제냐?? 하면

ls의 결과를 보면 ??????.txt가 보일 것이다

원격컴퓨터에서 ls 명령어를 치면

헬로.txt 라는것을 알 수 있다

해결법으로는....

Hosts 서버 설정에서 Environment Variables을 주는 방법이 있다

하지만 이건 Pro Plan을 결제해서 써야한다

그래서 우린 이 기능을 못쓰고, 2가지 방법이 있다

1. ls | grep을 이용

ls 명령어때는 ??? 인데 grep과 함께 출력하니깐 한글이 나온다

 

2. export LC_CTYPE="UTF-8" 입력

바로 보이는 한글!

근데 이건 매번 접속시마다 입력해줘야 한다

개발할때는 그냥 최대한 영어파일명, 영어경로, 영어로 하자.....!!

320x100

댓글