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 ~/.bashrc
Zsh 쉘의 경우:
vi ~/.zshrc
다음 줄을 쉘 설정 파일에 추가한 후 저장하고 종료합니다. (저장하려면
:wq
를 누르세요)
alias qshdev='ssh -o ProxyCommand="qpctl ssh-proxy %r %h %p"'
변경 사항을 현재 쉘 세션에 적용합니다.
Bash 쉘의 경우:
source ~/.bashrc
Zsh 쉘의 경우:
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.io
qpctl 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.io
Selected https://t4.qa.querypie.io
✔ Host changed to https://t4.qa.querypie.io
qpctl 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 supported
scp
scp 는 아직 지원되지 않습니다.