
.ssh/config 파일에서
시나리오는 현재 두 개의 공용 IP(동적)가 있는데, 하나는 aws에 연결되고 다른 하나는 랙 공간에 연결된다는 것입니다.
둘 다 연결하려면 서로 다른 pem 키가 필요합니다. 하지만 시간을 절약하기 위해 SSH 구성 파일을 사용하고 싶습니다.
Host <ip1>
User root
Port 22
HostName %h
IdentityFile ~/.ssh/aws.pem
Host <ip2>
User root
Port 22
HostName %h
IdentityFile ~/.ssh/rackspace.pem
이 설정에서는 어떤 pem 파일을 사용할지 구분할 수 없습니다. 호스트를 매개변수의 일부로 사용하여 연결할 서버를 지정하고 싶습니다(예: ssh aws-ip1 sshrack-ip2)
그런 다음 구성 파일은 사용할 pem 파일을 구별할 수 있습니다.
이 작업을 수행하는 방법을 아는 사람이 있나요?
답변1
좋습니다... 이 질문은 매우 오래되었습니다. 하지만 저는 이런 종류의 시나리오에서 도움이 될 방법을 생각할 수 있습니다. 여기서는 와일드카드(*) 및 %h 매개변수를 사용합니다.
Amazon의 IP를 10.10.20.*로, Rackspace IP를 20.20.10.*로 가정해 보겠습니다. 다음 구성이 도움이 될 것입니다:
Host 10.10.20.*
Hostname %h
User root
IdentityFile ~/.ssh/aws.pem
Host 20.20.10.*
Hostname %h
User root
IdentityFile ~/.ssh/rackspace.pem
그런 다음 호출하면 ssh 10.10.20.5
과 같은 호출이 필요할 수 있습니다.ssh -i ~/.ssh/aws.pem [email protected]
답변2
'호스트' 부분은 사용할 수 있는 일종의 '단축키'입니다.
Host aws-ip1
HostName ip-or-name-to-ip1
IdentityFile ~/.ssh/aws.pem
Host rack-ip2
HostName ip-or-name-to-ip2
IdentityFile ~/.ssh/rackspace.pem
그런 다음 그냥 사용 ssh aws-ip1
하거나 ssh rack-ip2
...
인용하려면 man ssh-config
:
Host Restricts the following declarations (up to the next Host key-
word) to be only for those hosts that match one of the patterns
given after the keyword.
답변3
또 다른 옵션은 일반 구식 쉘 별칭을 사용하는 것입니다.
alias ssh_rack="ssh -i .ssh/rackspace.pem"
alias ssh_aws="ssh -i .ssh/aws.pem"
그런 다음 대신 사용하십시오 ssh
.