Se a chave não for nomeada id_rsa, ela não funcionará

14

Eu criei uma chave para conectar no SSH com uma senha. Eu nomeei minha chave id_rsa_admin. Quando eu entro, a seguinte mensagem é exibidaPermission denied (publickey).

Nos logs, acho que o ssh procura um arquivo id_rsae, portanto, não encontra o arquivo correto.

Acho que, se a chave não for nomeada, id_rsaela não funcionará.

Como se conectar no ssh?

~/.ssh/id_rsa_admin

ssh [email protected] -p 9215
Mathieu
fonte

Respostas:

39

A resposta da Arronical é boa para uma conexão única, mas seria dolorosa a longo prazo. Para sshsempre usar essa chave ao se conectar a este servidor, você pode adicioná-lo ao seu ~/.ssh/config(ou criá-lo se ele não existir):

Host vps718449.ovh.net
    IdentityFile ~/.ssh/id_rsa_admin

Então você pode se conectar com apenas ssh [email protected] -p 9215. Como um bônus adicional, você também pode configurar a porta:

Host vps718449.ovh.net
    IdentityFile ~/.ssh/id_rsa_admin
    Port 9215

Então você pode se conectar com apenas ssh [email protected]. Ainda mais:

Host vps718449.ovh.net vps
     Hostname vps718449.ovh.net
     User admin
     IdentityFile ~/.ssh/id_rsa_admin
     Port 9215

Então só ssh vpsvai funcionar! Claro que vpsé apenas um exemplo, você pode usar qualquer outro alias que desejar (por exemplo, se você tiver mais de um VPS). Veja man ssh_configuma lista das opções que você pode definir lá.

Fkraiem
fonte
@fkraiem obrigado. Como fazer com três chaves?
Mathieu
1
@ Matieu Por que três chaves? Se for para três hosts diferentes, basta adicionar uma entrada para cada host, cada um com a chave apropriada.
fkraiem
@fkraiem Eu tenho 3 chaves diferentes no mesmo servidor, mas para 3 usuários #
Mathieu
@ Matthewieu Não posso confirmar isso agora, mas acho que apenas adicionar três IdentityFilelinhas na Hostseção deve funcionar. Além disso, se você colocar uma Userlinha, esse usuário se tornará o padrão ao conectar-se a esse host, mas você ainda poderá substituí-lo @.
fkraiem
@fkraiem Muito obrigado. Funciona, mas o seguinte erro é exibido "Agente admitiu falha ao assinar usando a chave". Eu uso "SSH_AUTH_SOCK = 0" para conectar, mas isso deve ser feito a cada reinicialização. Existe alguma outra saudação?
Mathieu
16

Você precisa usar a -iopção para seu comando ssh usando o caminho para sua chave. O comando modificado será:

ssh -i ~/.ssh/id_rsa_admin [email protected] -p 9215
Arronical
fonte
obrigado. Com sua resposta, o seguinte erro é exibido "ssh: Não foi possível resolver o nome do host i: Nome ou serviço desconhecido"
Mathieu
5
Colocar -iantes do nome do host também funciona; Acho que @Mathieu simplesmente esqueceu o hífen. : p
fkraiem