본문 바로가기

개발 도구/ssh

[ SSH ] ssh - config 설정해서 원하는 이름으로 로그인 하기

반응형

SSH 설정 파일을 사용하면 여러 서버에 접속할 때마다 설정을 반복할 필요 없이, 미리 정의해둔 설정으로 빠르고 쉽게 접속할 수 있습니다. ~/.ssh/config 파일을 이용해 SSH 접속 설정을 관리할 수 있습니다.

config 파일은 HOME 디렉토리에 위치하고 있습니다.
기본적인 ~/.ssh/config 파일의 구조는 다음과 같습니다.

1. 기본 구조

Host [별칭]
    HostName [원격 서버의 IP 또는 도메인]
    User [사용자 이름]
    Port [포트 번호]  # 기본값은 22
    IdentityFile [SSH 키 경로]

예시

  1. 특정 서버에 쉽게 접속하기 위해 별칭을 설정하는 경우:이렇게 설정한 후에는 아래와 같이 간단하게 접속할 수 있습니다.
   ssh myserver
   Host myserver
      HostName 192.168.1.10
      User myusername
      Port 22
      IdentityFile ~/.ssh/id_rsa
  1. 여러 서버에 공통 설정을 적용하는 경우:위 예시는 모든 서버에 대해 에이전트 포워딩을 활성화하고 서버에 유지 연결 설정을 추가한 것입니다.
   Host *
      ForwardAgent yes
      ServerAliveInterval 60
  1. 여러 서버에 공통 설정을 적용하는 경우:위 예시는 모든 서버에 대해 에이전트 포워딩을 활성화하고 서버에 유지 연결 설정을 추가한 것입니다.
   Host gpjigi.*
      ForwardAgent yes
      ServerAliveInterval 60
  1. 특정 도메인의 모든 서버에 공통 설정 적용:예를 들어, server1.example.com이나 server2.example.com과 같은 서버에 접속할 때 기본 사용자와 키 파일을 지정할 수 있습니다.
   Host *.example.com
      User myuser
      dentityFile ~/.ssh/example_key

2. 설정 옵션 요약

  • Host: 설정을 적용할 서버의 별칭.
  • HostName: 실제 서버의 IP 주소나 도메인.
  • User: 접속할 사용자 이름.
  • Port: SSH 포트 번호 (기본값은 22).
  • IdentityFile: 사용하려는 SSH 키 파일 경로.
  • ForwardAgent: 현재 클라이언트의 SSH 에이전트를 포워딩할지 여부.

3. 설정 상세 옵션

ssh의 설정 파일은 주로 ~/.ssh/config 파일에 작성하며, 다양한 keyword를 사용하여 SSH 접속을 자동화하고 사용자 경험을 개선합니다. 주요 ssh config 키워드는 다음과 같습니다:

1. Host

  • 설명: 이 항목은 여러 서버에 대한 설정을 분리하기 위해 사용되며, 접속 시 사용할 호스트 이름(별칭)을 지정합니다.
  • 예시:
   Host myserver
   HostName 192.168.1.100

2. HostName

  • 설명: 실제 접속할 서버의 도메인 이름이나 IP 주소를 설정합니다.
  • 예시:
   HostName example.com

3. User

  • 설명: SSH 접속 시 사용할 사용자 이름을 지정합니다.
  • 예시:
   User username

4. Port

  • 설명: SSH 접속 시 사용할 포트 번호를 지정합니다. 기본적으로는 22번 포트를 사용하지만, 서버 설정에 따라 다를 수 있습니다.
  • 예시:
   Port 2222

5. IdentityFile

  • 설명: 접속에 사용할 개인 키 파일의 경로를 지정합니다.
  • 예시:
   IdentityFile ~/.ssh/id_rsa

6. ProxyJump

  • 설명: 중간 서버를 통해 대상 서버에 접근할 수 있게 설정합니다. 여러 서버를 거쳐야 할 때 유용합니다.
  • 예시:
   ProxyJump jumpserver

7. ForwardAgent

  • 설명: 인증 에이전트를 포워딩할지 여부를 설정하며, 다른 서버에 접근할 때 로컬의 인증 정보를 사용할 수 있게 해줍니다.
  • 예시:
   ForwardAgent yes

8. ServerAliveInterval

  • 설명: 서버에 연결된 상태를 유지하기 위해 주기적으로 신호를 보내는 시간을 설정합니다(초 단위).
  • 예시:
     ServerAliveInterval 60

9. ControlMaster, ControlPath, ControlPersist

  • 설명: SSH 연결을 재사용하여 여러 접속 간의 속도를 높입니다.
  • 예시:
   ControlMaster auto
   ControlPath ~/.ssh/sockets/%r@%h-%p
   ControlPersist 10m

10. StrictHostKeyChecking

  • 설명: 서버의 호스트 키를 엄격하게 검사할지 여부를 설정합니다. "no"로 설정하면 새 서버의 호스트 키가 자동으로 추가됩니다.
  • 예시:
   StrictHostKeyChecking no

이 외에도 SSH의 설정은 서버 연결을 세밀하게 조정하는 다양한 키워드를 제공합니다.
위와 같은 설정을 통해 여러 서버에 쉽게 접속하고 관리할 수 있으며, 서버마다 설정을 일일이 입력하지 않아도 되어 편리합니다.

반응형