Como faço para adicionar permanentemente uma identidade para o SSH?

31

Eu preciso executar ssh-add <key> toda vez que eu precisar do ssh em um servidor da web. Existe uma maneira de adicionar o ID permanentemente, então eu não tenho que continuar adicionando as identidades em cada login?

EDIT: A chave é um arquivo pem, que eu baixei de um serviço de nuvem.

    
por theTuxRacer 10.01.2011 / 06:33

7 respostas

37

Gere sua chave como normal: ssh-keygen , depois coloque essa chave no servidor remoto com ssh-copy-id , que irá sincronizá-la com as chaves aceitas pelo servidor remoto.

ssh-keygen
ssh-copy-id user@host

Ele solicitará sua senha e executará todas as etapas necessárias para vincular sua chave .pub ao servidor SSH remoto.

Por padrão, copiará todas as suas chaves .pub para o servidor remoto. Se você acabou de criar sua chave com ssh-keygen , isso não é um problema (porque você só tem uma!). No entanto, se você tiver várias chaves, poderá copiar apenas uma chave específica com o sinalizador -i .

ssh-copy-id -i ~.ssh/key_name.pub user@host

Substituindo key_name.pub pelo nome da chave.

    
por Marco Ceppi 10.01.2011 / 17:29
7

Você pode gerar uma chave ssh com o comando:

ssh-keygen

Depois, você pode copiar sua chave para o servidor com:

ssh serveruser@servername "echo 'cat ~/.ssh/id_dsa.pub' >> ~/.ssh/authorized_keys" 

Agora você pode fazer login automaticamente no seu servidor da Web

    
O
por Arthur Knopper 10.01.2011 / 08:24
3

Se a sua chave for sem senha e nomeada como um dos arquivos que o ssh tentará procurar ao identificar ( ~/.ssh/id_dsa ou ~/.ssh/id_rsa ), você não deverá adicioná-la ao seu agente.

MAS. Se houver a menor possibilidade de esses arquivos serem roubados, você teria permitido apenas que qualquer pessoa acessasse os servidores nos quais você está usando essa identidade. Em suma, pwned.

IMHO, chaves privadas sem senha são uma prática ruim e devem ser usadas apenas em ambientes em que ~/.ssh/authorized_keys é muito restritivo.

    
por zuzur 10.01.2011 / 10:46
2

Escreva um pequeno script de shell que executará o ssh-add e conecte-o da seguinte forma:

ssh-add ~/.ssh/your-key
ssh user@remotehost

Você pode, então, ssh em seu host com um comando.

    
por hgolov 18.04.2012 / 08:45
0
 ssh serveruser@servername "cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys" 
    
por wangjianli 10.01.2011 / 17:20
0

coloque isso no seu ~/.bashrc

eval $(ssh-agent)
ssh-add ~/.ssh/where_ever_privake_key_is 
    
por user626052 02.12.2016 / 03:36
-1

Você está falando sobre o Amazon Cloud? Em seu ~ / .bashrc, crie variáveis ​​de ambiente:

# Amazon
export EC2_PRIVATE_KEY=$HOME/Keys/pk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.pem
export EC2_CERT=$HOME/Keys/cert-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.pem
export JAVA_HOME=/usr/lib/jvm/java-6-openjdk/
    
por user8290 10.01.2011 / 15:09

Tags