ssh

SSH 연결을 10배 빠르게 하기

단 3줄의 설정으로 SSH의 연결을 극적으로 가속화하는 방법을 소개합니다. 자주 SSH 연결하거나 동시에 많은 서버를 연결한 경우에 편리함을 느낄 수 있습니다.

Mimul
MimulMay 22, 2024 · 3 min read · Last Updated:

자주 SSH 연결하거나, 동시에 많은 서버를 SSH 연결하는 경우, 네트워크가 불안정한 환경에서 SSH를 사용할 경우, 복잡한 비밀번호를 사용할 경우에 작업 효율이 향상됨을 느낄 수 있다.

설정 정보

.ssh/config파일 Host *섹션에 다음 세 줄을 추가하기만 하면 된다.

Host *
  ControlMaster auto
  ControlPath ~/.ssh/mux-%r@%h:%p
  ControlPersist 4h

설정 설명

1. ControlMaster auto

하나의 SSH 연결로 여러 세션을 공유할 수 있다. 처음 연결할 때만 인증이 필요하고 다음 SSH 연결할 때에는 자격 증명을 다시 입력하는 번거로움이 없어 연결이 훨씬 빨라진다.

2. ControlPath ~/.ssh/mux-%r@%h:%p

공유 연결 소켓 파일의 위치를 지정한다. %r는 원격 사용자 이름, %h는 호스트 이름, %p는 포트 번호를 나타낸다. 이제 서로 다른 호스트와 사용자별로 별도의 공유 연결을 유지할 수 있다.

3. ControlPersist 4h

마지막 세션이 종료된 후에도 지정된 시간(여기에서는 4시간) 백그라운드에서 연결을 유지한다. 그 사이의 재접속이라면, 인증도, 접속도 거의 빠르게 왼료된다.

보안 고려

ssh -O 명령을 사용하면 제어 연결(ControlMaster 연결)을 조작할 수 있다.

ssh -O check <호스트 명> # 지정된 호스트에 대한 제어 연결이 있는지 확인
ssh -O stop <호스트 명>  # 지정된 호스트에 대한 제어 연결 중지
ssh -O exit <호스트 명>  # 지정된 호스트에 대한 제어 연결 종료

이 명령을 사용하면 장시간 유지되는 연결을 수동으로 관리할 수 있다. 예를 들어 보안을 강조하는 경우 작업이 끝날 때 ssh -O exit로 연결을 끊을 수 있다. 아래는 실제 실행한 커맨드와 결과이다.

❯ ssh -O check mimul@host01 -p 8008
Master running (pid=2744)

❯ ssh -O exit mimul@host01 -p 8008
Exit request sent.

Mimul

Written byMimul
Mimul is a programmer, technologist, exercise enthusiast and more.
Connect