Por padrão, o ssh pesquisa id_dsa
e id_rsa
arquivos. As chaves não precisam ser nomeadas dessa maneira, você também pode nomeá-las mykey
ou 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 IdentityFile
opçã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-server
o 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_keys
arquivo. Possíveis razões pelas quais a chave pública é negada:
/etc/ssh/sshd_config
:
AllowUsers
ou AllowGroups
está 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).
DenyUsers
ou DenyGroups
está especificado e você está na lista de usuários ou grupos.
- Você está tentando fazer login como root, mas
PermitRootLogin
está definido como No
(padrão yes
).
PubkeyAuthentication
está definido como No
(padrão yes
).
AuthorizedKeysFile
está 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 yourhost
em vez de ssh -p2222 youruser@yourhost -i ~/.ssh/id_dsa -i ~/.ssh/bender
.