Tenho minha configuração de chave pública / privada, mas não sei para onde ela deve ir. Ambos os arquivos devem ser colocados em ~/.ssh/
para meu usuário?
Resposta
A chave privada permanece em casa. A chave pública viaja:
- Coloque sua chave privada em
~/.ssh
(host local). Normalmente será~/.ssh/id_rsa
. - Coloque sua chave pública em
~/.ssh/authorized_keys
(host remoto).
Embora a primeira etapa geralmente seja feita automaticamente quando você cria o , a segunda pode ser realizada por meio de:
$ ssh-copy-id ~/.ssh/id_rsa.pub user@remotehost
Se você tiver qualquer configuração residual relativa ao host remoto, poderá ter alguns problemas com isso (falha de autenticação ou “muitas falhas de autenticação” ). Para se livrar desse problema, você pode forçar ssh-copy-id
a usar autenticação de senha com:
$ ssh-copy-id -o"PubkeyAuthentication no" ~/.ssh/id_rsa.pub user@remotehost
Claro, o ma vez que suas chaves estão colocadas corretamente, não há mais necessidade de uma senha:
$ ssh user@remotehost
Você também pode querer adicionar alguma configuração 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 simplesmente digitar o seguinte para fazer login no host remoto:
$ ssh [custom name for the remote machine]
Editar: se ambas as máquinas (local e remota) forem iguais, você pode simplificar o procedimento com:
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
Isso acrescentará sua chave pública ao arquivo authorized_keys
. Obviamente, outra maneira de fazer login como outra pessoa em sua máquina local é usar:
$ su [another user]
Isso salvará você da transação SSH onde você pode não precisar dela . Sem senha su
pode ser configurado usando sudo
:
$ sudo -iu [another user]
ssh localhost
?~/.ssh/authorized_keys
localmente. Para isso, você pode apenas usarcat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
. Editei minha resposta.-i
ao seu primeiro comando, para que todo o comando se parecesse com$ ssh-copy-id -i ~/.ssh/id_rsa.pub user@remotehost
.