Eu mudei minhas permissões na minha pasta .ssh
e agora quando eu uso um software que usa minha chave privada, eu tenho que digitar minha senha toda vez. Quais devem ser minhas permissões no meu arquivo id_rsa
para não precisar digitar uma senha toda vez que eu usar um aplicativo que a use?
Atualmente minhas permissões estão definidas para:
[email protected] 1 Jody staff 114 Nov 4 23:29 config
-rw------- 1 Jody staff 1743 Oct 21 2009 id_rsa
[email protected] 1 Jody staff 397 Oct 21 2009 id_rsa.pub
[email protected] 1 Jody staff 3855 Sep 13 22:35 known_hosts
Normalmente você quer que as permissões sejam:
.ssh
diretório: 700 (drwx------)
.pub
): 644 (-rw-r--r--)
id_rsa
): 600 (-rw-------)
755 (drwxr-xr-x)
).Eu estou supondo que você quer dizer que você tem que digitar sua senha de sistema/usuário cada vez, e que anteriormente você não precisava. A resposta do cdhowie é assumir que você definiu uma senha/frase secreta ao gerar suas chaves, e se você fez isso, como ele diz, você terá que digitar sua senha toda vez, a menos que você use um agente ssh.
Eu estava lutando com isso para sempre e finalmente descobri o que é necessário. Substitua $USER
em todos os lugares pelo nome de usuário do SSH no qual você deseja efetuar o login. Se você estiver tentando fazer o login como root
, precisará usar /root/.ssh
etc., em vez de /home/root/.ssh
, que é como é para usuários não-root.
chmod go-w /home/$USER
chmod 700 /home/$USER/.ssh
chmod 644 /home/$USER/.ssh/authorized_keys
user
possui os arquivos/pastas e não root
: chown user:user authorized_keys
e chown user:user /home/$USER/.ssh
ssh-keygen
) no arquivo authorized_keys
do usuário no servidor.ssh
correta que você está modificando. Se não, use usermod -d /home/$USER $USER
para corrigir o problemaservice ssh restart
.ssh
do usuário local e faça o login: ssh [email protected]
Certifique-se também de que seu diretório pessoal não seja gravável por outros usuários.
chmod g-w,o-w ~
Permissões não devem ter nada a ver com isso. Sua chave privada é criptografada com a senha, portanto, é necessário inseri-la para que a chave privada seja descriptografada e utilizável.
Você pode considerar a execução de um agente ssh, que pode armazenar em cache as chaves descriptografadas e fornecê-las aos aplicativos que precisam delas.
Felipe está correto - o diretório que contém seu diretório .ssh não deve ser gravável por grupo ou outro. Portanto, chmod go-w ~
é a próxima coisa lógica a tentar se você ainda for solicitado a fornecer uma senha quando estiver executando ssh'ing depois de executar ssh-keygen -t rsa; cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
, supondo que você não atribuiu uma frase secreta no comando ssh-keygen e seu diretório .ssh esteja em seu diretório home .