Onde deve ser meu arquivo authorized_keys se eu quiser ssh para 'localhost'?

1

Eu tenho minha configuração de chave pública / privada, mas não sei para onde ela deve ir. Esses dois arquivos devem ser colocados em ~/.ssh/ para meu usuário?

    
por MrDuk 15.10.2014 / 20:32

1 resposta

6

A chave privada fica em casa. A chave pública viaja:

  • Coloque sua chave privada em ~/.ssh (host local). Geralmente será ~/.ssh/id_rsa .
  • Coloque sua chave pública em ~/.ssh/authorized_keys (host remoto).

Enquanto a primeira etapa geralmente é feita automaticamente quando você cria a chave, a segunda pode ser realizada por meio de:

$ ssh-copy-id ~/.ssh/id_rsa.pub user@remotehost

Se você tiver alguma configuração residual referente ao host remoto, poderá ter algum problema com isso (falha na autenticação ou "falhas de autenticação em excesso" ). Para se livrar desse problema, você pode forçar o ssh-copy-id a usar a autenticação por senha com:

$ ssh-copy-id -o"PubkeyAuthentication no" ~/.ssh/id_rsa.pub user@remotehost

Claro que, uma vez que suas chaves foram colocadas corretamente, não há mais necessidade de uma senha:

$ ssh user@remotehost

Você também pode adicionar algumas configurações de SSH em ~/.ssh/config para torná-lo ainda mais simples:

Host [custom name for the remote machine]
    Hostname [remote hostname or IP]
    User [remote username]
    IdentityFile /home/[your local user]/.ssh/id_rsa

Graças a isso, você pode digitar o seguinte para efetuar login no host remoto:

$ ssh [custom name for the remote machine]

Editar: se as duas máquinas (local e remota) forem iguais, você pode simplificar o procedimento com:

$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

Isso anexará sua chave pública ao arquivo authorized_keys . Claro, outra maneira de registrar como outra pessoa em sua máquina local é usar:

$ su [another user]

Isso salvará a transação SSH onde você pode não precisar. Pode-se configurar su sem senha usando sudo :

$ sudo -iu [another user]
    
por 15.10.2014 / 20:33

Tags