Como configurar o cliente ssh para usar chaves privadas automaticamente

10

Estou sempre executando ssho -iparâmetro e é um incômodo digitar sempre a chave correta para qualquer host ao qual estou me conectando.

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

Leopd
fonte

Respostas:

12

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

Guias do host
     HostName tabs.com
     Usuário me
     Arquivo de identidade ~ / .ssh / new_rsa

Host scm.company.com
     Limite de usuário
     Arquivo de identidade ~ / .ssh / git_rsa

Organizar o estadiamento do projeto
     HostName 50.56.101.167
     Usuário me
     Arquivo de identidade ~ / .ssh / new_rsa

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

pjmorse
fonte
Também é um bom caminho a percorrer, se você não quiser usá-lo ssh-agentpor qualquer motivo.
precisa saber é o seguinte
Eu não sabia que isso era possível. +1
Safado
2

Os clientes SSH normalmente usam ~/.ssh/identity(ssh v1) ou um dos ( ~/.ssh/id_rsaou ~/.ssh/id_dsav2) como a chave privada padrão. Você pode alterar isso em ~/.ssh/config(o IdentityFileparâmetro - a -iopção para SSH realmente substitui isso. Consulte man ssh_configpara obter detalhes).

Se você tiver várias chaves privadas para lidar com o uso, ssh-agentprovavelmente é uma escolha melhor.
Veja man ssh-agentpara mais detalhes.

voretaq7
fonte
+1 para descrever os padrões e citar a página de manual.
Pjmorse
0

Se você usar 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.

Hubert Kario
fonte