Por padrão, o ssh pesquisa id_dsae id_rsaarquivos. As chaves não precisam ser nomeadas dessa maneira, você também pode nomeá-las mykeyou até colocá-las em um diretório diferente. No entanto, se você escolher um desses, precisará referenciar explicitamente a chave no comando ssh da seguinte maneira:
ssh user@server -i /path/to/mykey
Se um comando não aceitar -i, por exemplo sshfs, use a IdentityFileopção:
sshfs -o IdentityFile=/path/to/mykey user@host:/path/on/remote /mountpoint
Como funciona
Ao gerar uma chave, você obterá dois arquivos: id_rsa(chave privada) e id_rsa.pub(chave pública). Como seus nomes sugerem, a chave privada deve ser mantida em segredo e a chave pública pode ser publicada.
A autenticação de chave pública funciona com uma chave pública e uma privada. O cliente e o servidor têm suas próprias chaves. Ao instalar openssh-servero servidor, chaves públicas e privadas são geradas automaticamente. Para o cliente, você terá que fazer isso sozinho.
Quando você (cliente) se conecta a um servidor, as chaves públicas são trocadas. Você receberá os servidores um e o servidor seu. Na primeira vez que você receber a chave pública do servidor, você será solicitado a aceitá-la. Se essa chave pública mudar ao longo do tempo, você será avisado porque um possível ataque MITM (homem no meio) está acontecendo, interceptando o tráfego entre o cliente e o servidor.
O servidor verifica se você tem permissão para se conectar (definido em /etc/ssh/sshd_config) e se sua chave pública está listada no ~/.ssh/authorized_keysarquivo. Possíveis razões pelas quais a chave pública é negada:
/etc/ssh/sshd_config:
AllowUsersou AllowGroupsestá especificado, mas o usuário do servidor não está listado na lista de grupos ou usuários (o padrão não é definido, não havendo restrição para os usuários ou grupos de efetuar login).
DenyUsersou DenyGroupsestá especificado e você está na lista de usuários ou grupos.
- Você está tentando fazer login como root, mas
PermitRootLoginestá definido como No(padrão yes).
PubkeyAuthenticationestá definido como No(padrão yes).
AuthorizedKeysFileestá definido para um local diferente e as chaves públicas não são adicionadas a esse arquivo (padrão .ssh/authorized_keys, em relação ao diretório inicial)
~/.ssh/authorized_keys: sua chave pública não é adicionada neste arquivo (observe que este arquivo é lido como usuário root)
Usando várias chaves
Não é incomum usar várias chaves. Em vez de executar ssh user@host -i /path/to/identity_file, você pode usar um arquivo de configuração ~/.ssh/config,.
As configurações comuns são o IdentityFile (as chaves) e a porta. A próxima configuração verificará "id_dsa" e "bender" somente ao se conectar com ssh youruser@yourhost:
Host yourhost
IdentityFile ~/.ssh/id_dsa
IdentityFile ~/.ssh/bender
Se você omitir Host yourhost, as configurações serão aplicadas a todas as conexões SSH. Outras opções também pode ser especificado para este jogo host, como User youruser, Port 2222, etc. Isso permitirá que você se conectar com a abreviação ssh yourhostem vez de ssh -p2222 youruser@yourhost -i ~/.ssh/id_dsa -i ~/.ssh/bender.