CH-J Server ManagerSSH를 통한 서버 관리
메뉴
모든 가이드와 글 →

여러 SSH 서버를 동시에 관리하는 방법

SSH 별칭과 나란히 배치한 터미널로 여러 서버를 체계적으로 관리하고 잘못된 서버에서 명령을 실행하지 않도록 합니다.

각 서버에 명확한 이름 지정하기

일관된 별칭은 시간을 절약하고 실수를 줄입니다. ~/.ssh/config에서 각 서버의 주소, 사용자, 포트, 키를 하나의 이름 아래 모으고 이름에 역할과 환경을 넣어 운영 환경을 한눈에 알아볼 수 있게 하세요. 특정 호스트에 지정하지 않은 옵션은 Host * 블록의 설정을 따릅니다.

Host prod-web-1
    HostName 203.0.113.10
    User admin
    IdentityFile ~/.ssh/id_ed25519_prod
    IdentitiesOnly yes

Host test-web-1
    HostName 203.0.113.20
    User admin

서버를 혼동하지 않기

여러 서버에서 작업하다 보면 잘못된 창에 명령을 입력하기 쉽습니다. 프롬프트에 호스트 이름을 표시하고 운영 환경에서는 프롬프트 색을 다르게 사용하며, 파괴적인 작업을 하기 전에는 항상 현재 어느 서버에 있는지 확인하세요. 가장 위험한 단계는 터미널 하나만 열어 둔 상태에서 진행하세요.

hostname -f; whoami; pwd

오래 걸리는 작업을 계속 실행하기

연결이 끊기면 보통 셸과 그 안에서 실행 중인 명령도 종료됩니다. 오래 걸리는 작업은 서버의 tmux 또는 screen 안에서 실행하세요. 그러면 작업이 계속 실행되며 다시 연결할 수 있습니다. 클라이언트 keepalive는 끊어진 연결을 더 빨리 감지하지만 그 자체로 작업 실행을 유지하지는 못합니다.

tmux new -s upgrade
tmux attach -t upgrade

어떤 서버가 응답하는지 확인하기

여러 서버에 걸쳐 작업을 시작하기 전에 각 서버의 SSH 포트가 응답하는지 확인하세요. 포트가 닫혀 있다고 해서 항상 서버가 중단된 것은 아닙니다. 서비스가 중지되었거나 방화벽이 사용 중인 네트워크를 차단하고 있을 수 있습니다.

for host in prod-web-1 test-web-1; do
    ssh -o ConnectTimeout=5 "$host" 'hostname; uptime' || echo "$host: no connection"
done

CH-J Server Manager에서 여러 서버 관리하기

서버 프로필은 로컬 암호화 보관소에 저장되며 여러 SSH 세션을 동시에 열 수 있습니다. Alpha 0.1.1에서는 같은 서버 또는 두 서버에 연결된 터미널 두 개를 나란히 또는 위아래로 배치할 수 있으며, 터미널을 숨겨도 세션은 종료되지 않습니다. 모듈은 연결이 하나면 자동으로 사용하고 여러 개가 열려 있으면 선택을 요청하므로, 스스로 다른 서버로 이동하지 않습니다. 보관소를 잠그면 SSH 세션이 끊기므로 실행 중인 작업을 먼저 끝내거나 tmux에서 계속 실행하세요.

가용성을 한눈에 확인하기

Alpha 0.1.1의 가용성 모니터는 백그라운드에서 SSH 포트에 TCP 연결을 시도하여 저장된 서버를 확인합니다. 기본 간격은 12초이며 로그인하지 않습니다. 따라서 오프라인은 사용 중인 네트워크에서 SSH 포트에 접근할 수 없다는 뜻이며 서버 자체는 여전히 실행 중일 수 있습니다.

자세한 문서

OpenSSH: ssh_config →

생체 인증 잠금 해제 및 보안 →