2010-11-26 22:04:58 +0000 2010-11-26 22:04:58 +0000
411
411

Permissões em chave privada na pasta .ssh?

Eu alterei as minhas permissões na minha pasta .ssh e agora quando eu uso um software que usa a minha chave privada, tenho que digitar a minha senha cada vez. Quais devem ser as minhas permissões no meu ficheiro id_rsa para não ter de escrever uma palavra-passe cada vez que uso uma aplicação que a utilize?

Actualmente as minhas permissões estão definidas para:

-rw-------@ 1 Jody staff 114 Nov 4 23:29 config
-rw------- 1 Jody staff 1743 Oct 21 2009 id_rsa
-rw-------@ 1 Jody staff 397 Oct 21 2009 id_rsa.pub 
-rw-------@ 1 Jody staff 3855 Sep 13 22:35 known_hosts

Respostas (4)

93
93
93
2015-06-09 20:39:45 +0000

Estava a lutar para sempre com isto e finalmente descobri o que era necessário. Substitua $USER por todo o lado pelo nome de utilizador SSH em que pretende iniciar sessão no servidor. Se está a tentar fazer login como root terá de usar o /root/.ssh etc.., em vez do /home/root/.ssh, que é como é para os utilizadores não-root.

  • O directório home no servidor não deve poder ser escrito por outros: chmod go-w /home/$USER
  • A pasta SSH no servidor necessita de 700 permissões: chmod 700 /home/$USER/.ssh
  • O ficheiro de chaves autorizadas necessita de 644 permissões: chmod 644 /home/$USER/.ssh/authorized_keys
  • Certifique-se de que user é o dono dos ficheiros/pastas e não root: chown user:user authorized_keys e chown user:user /home/$USER/.ssh
  • Coloque a chave pública gerada (de ssh-keygen) no ficheiro authorized_keys do utilizador no servidor
  • Certifique-se de que o directório home do utilizador está configurado de acordo com as suas expectativas e que contém a pasta .ssh correcta que tem estado a modificar. Caso contrário, utilize o usermod -d /home/$USER $USER para corrigir o problema
  • Finalmente, reinicie o ssh: service ssh restart
  • Depois certifique-se de que o cliente tem os ficheiros da chave pública e da chave privada na pasta local do utilizador .ssh e faça o login: ssh user@host.com
37
37
37
2013-01-03 03:50:21 +0000

Certifique-se também de que o seu directório pessoal não é escrevível por outros utilizadores.

chmod g-w,o-w ~

6
6
6
2010-11-26 22:07:13 +0000

As autorizações não devem ter nada a ver com isto. A sua chave privada é encriptada com a password, pelo que necessita de a introduzir para que a chave privada seja desencriptada e utilizável.

Pode considerar a possibilidade de executar um agente ssh, que pode armazenar chaves desencriptadas e fornecê-las às aplicações que delas necessitem.

4
4
4
2014-04-17 20:20:44 +0000

Felipe está correto – o diretório contendo seu diretório .ssh não deve ser escrevível por grupo ou outro. Assim, chmod go-w ~ é a próxima coisa lógica a tentar se ainda lhe for pedida uma palavra-passe quando o ssh'ing for executado após o ssh-keygen -t rsa; cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys, assumindo que não atribui uma palavra-passe no comando ssh-keygen, e que o seu directório .ssh está no seu directório home.