Onde meu arquivo authorized_keys deve estar se eu quiser fazer o ssh para `localhost`?

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] 

Comentários

  • É o mesmo se eu quiser ssh localhost?
  • @MrDuk Neste caso, as extremidades local e remota são a mesma máquina. Portanto, você deve ter sua chave pública dentro de ~/.ssh/authorized_keys localmente. Para isso, você pode apenas usar cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys. Editei minha resposta.
  • Talvez as coisas tenham mudado desde sua resposta, mas eu precisava adicionar um -i ao seu primeiro comando, para que todo o comando se parecesse com $ ssh-copy-id -i ~/.ssh/id_rsa.pub user@remotehost.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *