Como configurar o cliente ssh para usar chaves privadas automaticamente

6

Estou sempre executando ssh com o parâmetro -i e é um incômodo sempre digitar a chave correta para qualquer host ao qual estou me conectando.

Existe um arquivo de configuração ou algo assim (no Mac) para definir qual chave privada usar ao se conectar a um determinado host?

    
por Leopd 22.04.2011 / 21:14

3 respostas

8

Sim, você deseja criar um arquivo ~/.ssh/config . Isso permite que você defina um nome de atalho para um host, o nome de usuário com o qual deseja se conectar e qual chave usar. Aqui está uma parte da minha, com nomes de host ofuscados:

Host tabs
     HostName tabs.com
     User     me
     IdentityFile       ~/.ssh/new_rsa

Host scm.company.com
     User       cap
     IdentityFile       ~/.ssh/git_rsa

Host project-staging
     HostName 50.56.101.167
     User     me
     IdentityFile       ~/.ssh/new_rsa

Com isso, posso dizer, ssh tabs e se conectar ao host tabs.com como usuário me , com a chave new_rsa , como se eu tivesse usado ssh [email protected] -i ~/.ssh/new_rsa .

    
por 22.04.2011 / 21:25
2

Os clientes SSH geralmente usam ~/.ssh/identity (ssh v1) ou um dos ~/.ssh/id_rsa ou ~/.ssh/id_dsa (v2) como a chave privada padrão. Você pode alterar isso em ~/.ssh/config (o parâmetro IdentityFile - a opção -i para SSH realmente substitui isso. Consulte man ssh_config para obter detalhes).

Se você tem várias chaves privadas para lidar com ssh-agent , provavelmente é uma escolha melhor.
Veja man ssh-agent para mais detalhes.

    
por 22.04.2011 / 21:25
0

Se você usa chaves diferentes para servidores diferentes, não acho que exista.

Se você usar uma única chave para todos os servidores, salve-a como ~/.ssh/id_rsa , ela será usada automaticamente.

    
por 22.04.2011 / 21:23

Tags