SSH 구성 파일에서 "Host"를 매개변수로 사용할 수 있나요? 그렇지 않은 경우 SSH 구성 파일이 매개변수를 허용하도록 하려면 어떻게 해야 합니까?

SSH 구성 파일에서 "Host"를 매개변수로 사용할 수 있나요? 그렇지 않은 경우 SSH 구성 파일이 매개변수를 허용하도록 하려면 어떻게 해야 합니까?

.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.

관련 정보