Show 우노들어가기 앞서,
SSH Config 설정
SSH Config 권한 설정
SSH Config 를 사용한 접속 예제
참고
하나의 컴퓨터에서 복수의 SSH 키를 사용할 경우 SSH 접속에 사용하는 ssh 명령이 복잡해지는 단점이 있습니다. 이러한 복잡성은 SSH config 파일을 이용하여 해결할 수 있습니다. 이 문서는 SSH 키 파일을 이미 갖고있는 것을 전제로 합니다. 아직 SSH 키를 생성하지 않은 상태라면, 다음 문서를 참조하시기 바랍니다.
ssh 명령의 기본 사용법은 다음과 같습니다. > ssh 사용자ID@서버명 다음과 같은 명령을 내릴 때 ssh 명령은 “~/.ssh/id_rsa” 키 파일을 사용하여, 52.79.103.139 서버에 ubuntu 계정으로 로그인을 시도합니다. > ssh Welcome to Ubuntu 14.04.3 LTS (GNU/Linux 3.13.0-74-generic x86_64) Last login: Mon Feb 1 01:44:13 2016 from 211.210.76.6 ubuntu@ip-172-31-11-175:~$ pwd /home/ubuntu ubuntu@ip-172-31-11-175:~$ 기본 SSH 키( > ssh -i ~/.ssh/aws-seoul.pem Welcome to Ubuntu 14.04.3 LTS (GNU/Linux 3.13.0-74-generic x86_64) Last login: Mon Feb 1 02:10:40 2016 from 211.210.76.6 ubuntu@ip-172-31-11-175:~$ 위 명령은 SSH 키 파일을 직접 지정해야 하므로 사용하기 부담스러운 면이 있습니다. ssh 명령을 단순하게 사용하는 방법의 하나는 다음과 같은 alias를 사용하는 것입니다. > alias awsssh="ssh -i ~/.ssh/aws-seoul.pem" > awsssh Welcome to Ubuntu 14.04.3 LTS (GNU/Linux 3.13.0-74-generic x86_64) Last login: Mon Feb 1 02:23:47 2016 from 211.210.76.6 ubuntu@ip-172-31-11-175:~$ alias를 사용하면 명령을 쉽게 입력할 수 는 있지만 별도로 alias를 관리한다는 부담이 증가합니다. ~/.ssh/config 설정 파일여러 ssh 키 파일들을
사용할 때 발생하는 문제는 ### for aws Host aws-ubuntu1 HostName 52.79.103.139 IdentityFile ~/.ssh/aws-seoul.pem Host aws-ubuntu2 HostName 52.79.103.139 User ubuntu IdentityFile ~/.ssh/aws-seoul.pem ## for git Host github.com User git IdentityFile ~/.ssh/id_rsa_XXXXXXXXXXXX Host bitbucket.org User git IdentityFile ~/.ssh/id_rsa_@@@@@@@@@@@@ 위 설정 파일은 2개의 아마존 서버와 github 및 bitbucket 서버 설정으로 구성되어 있습니다. 위 예제에서 아마존 AWS 서버는 다음의 두 가지 방법으로 로그인할 수 있습니다. SSH config 설정을 사용할 경우, 복수의 인증서를 사용하는 상황에서도 다음과 같이 ssh 명령을 단순하게 유지할 수 있습니다. > ssh ubuntu@aws-ubuntu1 Welcome to Ubuntu 14.04.3 LTS (GNU/Linux 3.13.0-74-generic x86_64) Last login: Mon Feb 1 02:37:28 2016 from 211.210.76.6 ubuntu@ip-172-31-11-175:~$ 아래의 경우 aws-ubuntu2에 로그인 계정명을 등록하였기 때문에 ssh 명령을 더욱 단순하게 사용 가능합니다. > ssh aws-ubuntu2 Welcome to Ubuntu 14.04.3 LTS (GNU/Linux 3.13.0-74-generic x86_64) Last login: Mon Feb 1 02:56:27 2016 from 211.210.76.6 ubuntu@ip-172-31-11-175:~$ ~/.ssh/config 권한 설정SSH 설정 파일은 다른 사용자가 사용할 경우 심각한 보안 문제가 발생할 수 있습니다. 따라서 다음과 같이 오로지 파일 소유권자만이 설정 파일을 읽을 수 있도록 권한을 제한해야 합니다. chmod 440 ~/.ssh/config ssh 설정 파일 구성SSH 설정 파일의 기본 형태는 다음과 같습니다. Host firsthost SSH_OPTION_1 custom_value SSH_OPTION_2 custom_value SSH_OPTION_3 custom_value Host secondhost ANOTHER_OPTION custom_value Host *host ANOTHER_OPTION custom_value Host * CHANGE_DEFAULT custom_value SSH 설정 파일의 옵션 값은 다음과 같이 3가지 방법으로 설정 할 수 있습니다. 다음 3 가지는 모두 유효한 설정입니다. Port 4567 Port=4567 Port = 4567 호스트 맵핑호스트 맵핑은 Host 속성과 Hostname 속성을 이용하여 실제 호스트 URL에 맵핑을 합니다.
Host dev HostName dev.taewan.kim Uset admin 위와 같이 설정된 상태에서 “ssh dev”이 실행된다면 다음과 같은 명령으로 변환되어 실행됩니다. ssh -i ~/.ssh/id_rsa" 서브 도메인 등 와일드카드 문자 지정다음과 같이 와일드카드 문자로 호스트 명을 지정 할 수 있습니다. 이 경우 taewan.kim의 서브 도메인에 모두 적용됩니다. Host *.taewan.kim User taewan PreferredAuthentications publickey IdentityFile ~/.ssh/taewan.dev ssh config의 주요 속성일반 속성
네트웍 속성
ssh 키 지정
Multiplexingssh 명령은 하나의 서버에 접속하는 여러 SSH 커넥션을 하나의 TCP 커넥션을 사용하여 연결하는 기능을 제공합니다. 복수의 SSH 커넥션으로 발생하는 부하를 제거하는 용도로 적합
요약하나의 컴퓨터에서 여러 개의 SSH 키 파일를 유지하는 것은 매우 번거로운 일입니다. 최근에 여러 클라우드 서비스, github, bitbucket, gitlab 등 SSH 키 인증을 사용하는 서비스가 늘어나면서 ssh 키 파일 관리가 필요한 상황입니다. ssh config 파일을 이용하면 도메인, ip 혹은 서버의 alias명 별로 접속 계정, SSH 키 파일, ssh 명령 속성 을 설정할 수 있기 때문에 ssh 명령을 간결하게 유지하는 방법을 제공합니다. ssh config는 참고자료
|