🔐 SSH Config

정의

SSH Config는 SSH 접속 시 자주 쓰는 옵션과 호스트별 설정을 미리 저장해 두는 설정 파일이다.

Git에서 SSH를 사용할 때는 서버 주소, 사용자, 키 파일, 알고리즘 옵션을 반복해서 입력하지 않도록 SSH Config를 활용한다.
이 설정을 잘 해두면 Git Push, Clone, Pull 과정에서 같은 접속 규칙을 안정적으로 재사용할 수 있다.

🧩 설정 목적

  • 호스트별 접속 정보를 정리한다.
  • 자주 사용하는 사용자명과 키 파일 경로를 고정한다.
  • 오래된 서버와 연결할 때 필요한 예외 옵션을 지정한다.
  • Git Remote 연결 문제를 줄인다.

🛠 설정 예시

Host github.com
    HostName github.com
    User git
    IdentityFile C:/Users/username/.ssh/id_rsa

Host 61.109.169.13
    HostName 61.109.169.13
    User root
    IdentityFile C:/Users/username/.ssh/id_rsa
    HostKeyAlgorithms +ssh-rsa

위 예시는 GitHub와 특정 서버에 대해 각기 다른 접속 규칙을 지정한 것이다.
특히 HostKeyAlgorithms는 구형 서버에서 ssh-rsa만 제공할 때만 제한적으로 사용한다.

image

⚠️ 오류 상황

  • SSH 연결 자체는 되는데 Git Remote 등록이 실패할 수 있다.
  • 오래된 서버에서는 no matching host key type found 오류가 발생할 수 있다.
  • ssh-dss 같은 매우 오래된 알고리즘은 가능하면 사용하지 않는 편이 좋다.

error

Unable to negotiate with ... no matching host key type found. Their offer: ssh-rsa,ssh-dss

🔧 해결 방법

  • ssh_config에 필요한 호스트별 설정을 추가한다.
  • HostKeyAlgorithms 설정이 필요한 경우에만 예외적으로 허용한다.
  • 가능하면 서버 측 SSH 설정을 최신 방식으로 갱신한다.
  • SSH 키 파일 경로가 실제 존재하는지 확인한다.

🧠 운영 포인트

  • SSH Config는 여러 저장소를 관리할수록 효과가 크다.
  • IdentityFile을 명확히 지정하면 키 혼동을 줄일 수 있다.
  • Git 관련 오류가 나면 Git-ErrorList와 함께 확인한다.
  • SourceTree를 쓰는 경우 Git-Private-Sourcetree연동 문서도 함께 보면 좋다.

📌 정리

  • SSH Config는 SSH 접속 규칙을 미리 정리하는 파일이다.
  • Git Remote 연결 안정성을 높이는 데 유용하다.
  • 오래된 서버 대응은 최소 범위로만 예외 설정을 적용해야 한다.

연결문서

태그: ,

카테고리:

업데이트:

댓글남기기