Git SSH Config
🔐 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만 제공할 때만 제한적으로 사용한다.

⚠️ 오류 상황
- 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 연결 안정성을 높이는 데 유용하다.
- 오래된 서버 대응은 최소 범위로만 예외 설정을 적용해야 한다.
댓글남기기