Multi Agent Seamless SSH 사용 가이드
Seamless SSH란 기존 터미널 사용성을 그대로 유지하면서 QueryPie를 통해 서버에 접속할 수 있는 기능입니다.
본 문서는 10.2.8 버전을 기준으로 Seamless SSH 사용법, 스펙 및 지원 범위를 안내합니다.
사용 방법
SSH config 설정 방법
기존 ssh 명령어를 사용하기 위해 SSH config 파일을 설정할 수 있습니다.
.ssh디렉토리로 이동하여config파일을 생성하거나 편집합니다.
cd ~/.ssh
vi config- 다음 설정을
config파일에 추가한 후 저장하고 종료합니다. (저장하려면:wq를 누르세요)
Host {{Server Name}}
Hostname {{Server URL}}
Port {{Server SSH Port}}
ProxyCommand qpctl ssh-proxy %r %h %p develop.dev.querypie.io- 서버 간 URL과 포트가 겹치지 않는 경우 아래와 같이 설정할 수도 있습니다.
Host *
ProxyCommand qpctl ssh-proxy %r %h %p develop.dev.querypie.io- 간소화된 SSH 명령어를 사용하여 서버에 접속합니다.
ssh {{Server Account}}@{{Server Name}}Shell Alias 설정 방법
기존 ssh 명령어를 사용하기 위해 SSH Alias를 설정할 수 있습니다.
- 쉘 설정 파일을 엽니다.
Bash 쉘의 경우:
vi ~/.bashrcZsh 쉘의 경우:
vi ~/.zshrc- 다음 줄을 쉘 설정 파일에 추가한 후 저장하고 종료합니다. (저장하려면
:wq를 누르세요)
alias qshdev='ssh -o ProxyCommand="qpctl ssh-proxy %r %h %p"'- 변경 사항을 현재 쉘 세션에 적용합니다.
Bash 쉘의 경우:
source ~/.bashrcZsh 쉘의 경우:
source ~/.zshrc또는 새 터미널 창을 열어도 됩니다.
- Alias를 사용하여 서버에 접속합니다.
qpctl host use develop.dev.querypie.io
qshdev {{Server Account}}@{{Server Name}}기존 QueryPie User Agent와 달라진 점
기본 명령어
Seamless SSH는 QueryPie Multi Agent 설치시 함께 설치되는 다음 명령어를 이용하여 구동됩니다.
qpctl ssh-proxy %r %h %p [QueryPie Host]기존 User Agent에서 사용하던 명령어는 다음과 같습니다.
qpa ssh %r %h %p연결 에러 노출 방식
연결 단계에서 QueryPie Proxy 서버 연결 오류가 발생하면 기존 User Agent는 dialog를 표시해 터미널 친화적이지 않았습니다.
Multi Agent는 터미널에 에러 내용이 노출되도록 변경되었습니다.
$ qpctl ssh manual@core.dev.querypie.io
qpctl: error: Connection error: Timeout새롭게 추가된 기능
기본 호스트 지정
Multi Agent는 Seamless SSH를 사용하기 위해서 QueryPie Host를 입력해야 하는 불편함이 있습니다.
qpctl 명령에 사용하는 기본 서버를 지정하는 기능을 추가합니다.
- 기본서버가 지정되면 qpctl ssh-proxy 명령에서 QueryPie Host 를 입력하지 않아도 됩니다.
- 기본서버가 지정되어 있더라도 QueryPie Host 를 입력하면 이 값을 사용합니다.
Reset All Settings 으로 앱을 초기화 하면 기본 호스트 설정도 삭제됩니다.
qpctl host list
현재 등록된 QueryPie Hosts 목록을 확인합니다.
UI 에서 현재 선택한 QueryPie Host 가 아닙니다.
$ qpctl host list
QueryPie Hosts:
- https://nightly.dev.querypie.io
- http://t8.ec2.querypie.io (current)
- https://t3.qa.querypie.io
- https://t4.qa.querypie.io
- https://t8.qa.querypie.io
- https://t12.qa.querypie.ioqpctl host use
현재 등록된 QueryPie Hosts 목록을 보여주고 방향키로 선택합니다
$ qpctl host use
Use the arrow keys to navigate: ↓ ↑ → ←
QueryPie Hosts
▸ https://nightly.dev.querypie.io
http://t8.ec2.querypie.io (current)
https://t3.qa.querypie.io
https://t4.qa.querypie.io
↓ https://t8.qa.querypie.ioSelected https://t4.qa.querypie.io
✔ Host changed to https://t4.qa.querypie.ioqpctl host use {QueryPie Host}
$ qpctl host use nightly.dev.querypie.io
✔ Host changed to https://nightly.dev.querypie.io⚠️ 실험적 기능 - qpctl 직접 사용 ⚠️
Seamless SSH 를 사용하기 위해
~/.ssh/config를 설정하거나- ssh 명령에
-o ProxyCommand=qpctl ssh-proxy …를 입력하는
경험은 자연스럽지 못합니다.
이에 QueryPie Multi Agent를 설치하였다면 ssh 접속을 위해 qpctl 명령어를 직접 사용할 수 있습니다.
- 사용자가 사용하고자 하는 ssh 명령어 앞에
qpctl만 붙여주세요.
$ qpctl ssh ec2-user@core.dev.querypie.io -i ~/.ssh/querypie-dev.pem~/.ssh/config에 설정한 것도qpctl만 붙여주세요.
$ cat ~/.ssh/config
Host core-dev
Hostname core.dev.querypie.io
User ec2-user
IdentityFile ~/.ssh/querypie-dev.pem
$ qpctl ssh core-dev지원 범위
최소 지원 버전
OpenSSH 6.7 이상이 필요합니다.
$ ssh -V
OpenSSH_9.8p1, LibreSSL 3.3.6동작 방식
qpctl 명령이 ssh 클라이언트 명령을 wrapping 하여 ProxyCommand 옵션을 자동으로 붙여서 실행해줍니다.
- qpctl ssh command_line
- ssh -G command_line
- username, hostname, port 추출
- ssh command_line -o ProxyCommand=”qpctl ssh-proxy username hostname port”
미지원 기능
사용자 지정 ProxyCommand
qpctl 가 ProxyCommand 를 사용하기 때문에사용자 지정 ProxyCommand는 사용할 수 없습니다.
$ qpctl ssh ec2-user@core.dev.querypie.io -o ProxyCommand="..."
qpctl: error: ProxyCommand option is not supportedscp
scp 는 아직 지원되지 않습니다.