IT/Linux

[Linux] ssh에 config를 설정하여 쉽게 서버 접근하기

반응형

Intro

리눅스 서버에서 원격으로 접근하기위해서는 ssh를 사용하는데 이때 유저, host, key 정보를 매번 입력하지 않아도 ~/.ssh/config에 설정하여 짧은 명령어로 해당 서버에 접근할 수 있다.

~/.ssh/config 설정하기

리눅스 서버에 ssh를 통해서 해당 서버 OS에 접속하기 위해 다음과 같은 명령어를 사용하게 된다

ssh kimdragon@10.0.0.1

이 경우 매번 user명과 ip정보를 입력해야해서 번거로울 수 있는데 ~/.ssh/config 에 설정을 하면 좀 더 짧은 명령어로 해당 서버에 접근할 수 있다.

Host dev
    HostName 10.0.0.1
    User kimdragon

만약 config 파일이 없으면 생성하면되고 아래와 같이 간단하게 Host 로 지정해놓은 이름으로 접근 할 수가 있다

ssh dev

위 경우 해당 유저의 비밀번호를 매번 입력해야하는 번거로움이 발생할 수 있는데, 이 경우 비밀번호가 아닌 key로 접근 할수가 있고 해당 key를 설정하여 비밀번호 입력없이 접속 할 수 있다

일반적으로 public key인 pem키를 사용해서 아래와 같이 접근 하게되는데, 매번 -i 옵션으로 키 경로를 지정해야 한다.

ssh kimdragon@10.0.0.1 -i ~/key/dev.pem

이 경우 아래와 같이 ~/.ssh/config 에 key도 같이 설정해보자

Host dev
    HostName 10.0.0.1
    User kimdragon
    PreferredAuthentications publickey
    IdentityFile ~/key/dev.pem

그러면 ssh dev 명령어로 쉽게 서버에 접속이 가능하다.

하나의 서버에 여러키로 접근 할 경우 서버에서 ~/.ssh/config 설정

만약 접속하려는 서버에 여러키로 접근이 필요한경우가 있을 수 있는데, 예를들어 jenkins와 같은 배포 서버에 각 부서마다 사용하는 인증키가 다를 경우 jenkins 서버에 아래와 같이 여러 private key 경로를 ~/.ssh/config 에 설정할 수 있다

IdentityFile ~/.ssh/id_rsa
IdentityFile ~/.ssh/id_rsa_team1
IdentityFile ~/.ssh/id_rsa_team2
IdentityFile ~/.ssh/id_rsa_team3
반응형