ssh 연결을 이것저것 시도하던 중 알게 된게 ~/.ssh/config
그러다 ssh 클라이언트가 config를 어떻게 참조하는지 알아보았댜.
주로 git과 연결하기 위해 ssh 를 사용하다가 알아보게 되었다.
ssh git@gitlab.com -p 2200 -i ~/.ssh/id_rsa
이런 식으로 명령어를 사용하게 되는데
처음에는 명령어에 적힌 옵션을 먼저 반영한다.
이후에는 사용자의 ~/.ssh/config를 참조하고
사용자의 config 파일이 없으면 전체 시스템의 config 파일, /etc/ssh/ssh_config 파일을 참조한다.
Host my-server
HostName 10.10.10.10
User git
Port 2200
.ssh/config 파일은 보통 이런 구성을 갖고 있다.
Host는 별칭이라고 보면 된다.
HostName 은 접속하려는 호스트 Url 이나 ip이다
User, Port는 접속하려는 사용자와 Port이다.
config 파일에 키를 등록 후
ssh my-server
이런 식으로 별칭을 호출해서 간단하게 명령어를 사용할 수도 있다.
기존에 직접 제원정보를 명령어에 적지 않아도 되어 보안에 조금이나마 도움이 된다고 한다.
파일의 참조 순서와 적용 순서는 반대이다. ( )
참조 뒤에
/etc/ssh/ssh_config 값을 적용하고
이후에 ~/.ssh/config 값을 적용한다.
마지막으로 명령어에 적힌 옵션을 적용한다.
사용자의 config 파일을 읽을때
Host 를 먼저 확인한다.
이후 맞는 Host가 없는 경우
<Host *>로 지정된 섹션의 설정을 따른다.
또한 특정 키를 지정할 수 있어서 여러 서버의 ssh 연결을 관리하기 용이하다.
Host *
User normal
Port 22
Host server1
HostName 192.192.192.192
User user1
Port 2200
IdentityFile ~/.ssh/id_rsa
KexAlgorithms +diffie-hellman-group14-sha1
Host server2
HostName gitlab.com
User git
Port 2201
IdentityFile ~/.ssh/id_rsa_git
이런식으로 사용할 수 있다.
ssh-add 라는 녀석도 있다.
ssh key에 비밀번호를 입력해여 하는 경우
반복작업이 되지 않도록 ssh-add agent에 저장해서 한 번 입력 후에는 비밀번호를 입력하지 않아도 되는 기능이다.
'Linux' 카테고리의 다른 글
| 자바 버전 설정 alternatives (0) | 2025.03.11 |
|---|---|
| 서버 재부팅시 특정 사용자로 스크립트 실행 crontab (0) | 2025.02.19 |
| 2 Too Many authentication failure (1) | 2024.12.02 |
| session 접속 제한 Too many authentication failures (1) | 2024.08.26 |
| Temporary failure resolving (0) | 2023.04.07 |