Como gerenciar muitas informações de conexão SSH de instâncias do EC2 a partir do ubuntu usando diferentes arquivos .pem

1

Tenho que acessar muitas instâncias do AWS EC2 da minha máquina local regularmente. Seus endereços IP não estão mapeados para nenhum domínio e eu preciso fazer o login deles usando o comando como:

ssh -i keyfile.pem ec2-user@<ip address of the instance>

Existem mais de 10 instâncias do EC2 e algumas têm o mesmo arquivo de chave que algumas têm diferentes. O problema é que não me lembro de seus endereços IP e sempre tenho que consultá-los no meu console da AWS e depois copiar e colar o endereço IP deles. Existe alguma maneira que eu possa tornar este processo muito mais rápido, armazenando alguns aliases para essas instâncias localmente e acessá-los usando alguma ferramenta GUI? Eu não quero usar o PUTTY já que eu gosto do shell do Ubuntu.

    
por Mandeep Singh 18.02.2016 / 11:20

2 respostas

1

Você pode tentar com atalhos especificando o nome do host, o nome de usuário, a porta e a chave privada. Consulte os documentos oficiais .

Host MyInstance1
Host example.com or ipaddress
User ubuntu
IdentityFile /path/to/privatekey/MyInstance1.pem

Permissão:

chmod 600 ~/.ssh/config

Em seguida, tente acessar por

ssh  MyInstance1

Você também pode tentar usar aliases:

Arquivo:

vi vim ~/.bash_aliases

Então

alias MyInstance1='ssh [email protected] -i /path/to/private-key/MyInstance1.pem'
    
por Ramesh Chand 18.02.2016 / 12:15
1

Uma configuração ssh é ótima para isso, no entanto, ao reimplantar novas instâncias, os IPs serão alterados e sua configuração ssh ficará obsoleta. Escrevi uma ferramenta que extrairia o inventário EC2 mais recente da AWS e do ssh para o sistema que corresponde à sua pesquisa: link

bridgy ssh <some-instance-id>

ou se você adicionar uma tag chamada Name a cada instância, poderá usá-la também:

bridgy ssh <some-name-tag-value>

Se você tem o ~/.aws creds / config definido como você faria com o aws-cli, assim como o seguinte em ~/.bridgy/config.yml :

inventory:
    source: aws
    update_at_start: true
ssh:
    user: <your ssh user>
...

então deve funcionar!

Uma última coisa: se você adicionar todas as chaves ssh a um ssh-agent, isso resolverá seu problema com relação a vários arquivos de chaves (todas as chaves são tentadas no host em que você tenta efetuar login).

    
por wagoodman 27.08.2017 / 06:53