No arquivo de configuração ssh, posso usar "Host" como parâmetro? Caso contrário, como posso fazer com que o arquivo de configuração ssh aceite o parâmetro?

No arquivo de configuração ssh, posso usar "Host" como parâmetro? Caso contrário, como posso fazer com que o arquivo de configuração ssh aceite o parâmetro?

no arquivo .ssh/config

O cenário é que agora tenho dois ips públicos (dinâmicos), um está conectado ao aws e o outro está conectado ao rackspace

Ambos requerem chaves pem diferentes para se conectar. Mas quero usar o arquivo de configuração ssh para economizar meu tempo

Host <ip1> 
User root
Port 22
HostName %h
IdentityFile ~/.ssh/aws.pem

Host <ip2> 
User root
Port 22
HostName %h
IdentityFile ~/.ssh/rackspace.pem

A partir dessa configuração, não consigo distinguir qual arquivo pem deve ser usado. Quero usar o Host como parte do parâmetro para especificar a qual servidor conectar, por exemplo, ssh aws-ip1 ssh rack-ip2

então o arquivo de configuração pode distinguir qual arquivo pem usar

Alguém sabe como fazer isto?

Responder1

Ok... Essa pergunta é muito antiga. No entanto, posso pensar em uma maneira que ajudará nesse tipo de cenário. Usando parâmetros curinga(*) e %h aqui.

Vamos supor que o IP da Amazon seja 10.10.20.* e o IP da Rackspace seja 20.20.10.*. A seguinte configuração ajudará:

Host 10.10.20.*
    Hostname %h
    User root
    IdentityFile ~/.ssh/aws.pem

Host 20.20.10.*
    Hostname %h
    User root
    IdentityFile ~/.ssh/rackspace.pem

E então ligar, digamos, ssh 10.10.20.5chamará algo como , que é o que pode ser necessário.ssh -i ~/.ssh/aws.pem [email protected]

Responder2

A parte 'Host' é uma espécie de 'atalho' que você pode usar:

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

e então você apenas usa ssh aws-ip1ou ssh rack-ip2...

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

Responder3

Outra opção é usar aliases de shell simples e antigos:

 alias ssh_rack="ssh -i .ssh/rackspace.pem"
 alias ssh_aws="ssh -i .ssh/aws.pem"

e então use-os em vez de ssh.

informação relacionada