Por que estou recebendo “Permission Denied” ao executar o ssh-add?

3

Gerei chaves e as aprovou para acesso à minha equipe de TI corporativa. No entanto, eu preciso adicioná-los ao meu terminal toda vez que eu iniciar minha máquina (o script que eu tenho dado para contornar isso não está funcionando para mim ainda). Então, por enquanto, tenho que emitir ssh-add ~/.ssh/keyfolder/private_key toda vez que eu iniciar minha máquina.

Hoje, no entanto, comecei a receber esse erro:

~/.ssh/keyfolder/private_key: Permission denied

Eu tentei lançar um chmod 777 nessa chave privada, mas sem sorte.

O que eu fiz / estou fazendo errado?

$sudo ls -lha ~/.ssh/keyfolder/private_key
-rwxrwxrwx 1 rabdelaz staff 1.7K 2013-07-29 10:19 /home/rabdelaz/.ssh/keyfolder/private_key

RESPOSTA: Eu precisava dos níveis de permissão corretos nos lugares certos (obviamente).

então o que eu fiz foi definir o "keyfolder" e digitar a si mesmo para 600.

não tenho certeza de quais eram as permsions antes ...

    
por Ramy 09.09.2013 / 17:56

3 respostas

5

Você quer que a pasta chave e a própria chave só possam ser lidas pelo usuário. Eu sempre faço chmod 700 ~/.ssh; chmod 600 ~/.ssh/* , onde você obviamente deseja alterar esses diretórios para se adequar ao seu próprio caso de uso.

    
por 10.09.2013 / 15:13
3

Nunca faça um chmod 777 na sua chave privada! Isso torna (possivelmente) publicamente legível, e você não quer isso. Além disso, o SSH, em alguns casos, até se recusará a usar um arquivo com permissões muito permissivas, então você pode estar atirando no próprio pé com isso.

Se as permissões do arquivo não forem o problema, pode haver várias outras causas. Você pode ter permissões incorretas configuradas em qualquer um dos diretórios ~/.ssh ou ~/.ssh/keyfolder (tecnicamente também em ~ , mas este não seria o único sintoma). Use ls -adl para inspecionar esses diretórios. Eles devem ter rwx para você, mas --- para o grupo e o mundo.

Outro problema pode ser (mas isso é bastante raro) é que o binário ssh-add tem o setuid bit definido, fazendo com que ele seja executado como um usuário diferente e, portanto, não tenha o direito de ler sua chave privada. Use ls -lh $(which ssh-add) para inspecionar isso.

    
por 09.09.2013 / 18:06
1

A primeira coisa a fazer nessa situação é usar a opção -v para ssh (adicionando verbose), para que você possa examinar quais tipos de métodos de autenticação estão sendo testados e qual é o resultado. Isso pode fornecer uma informação sutil das possíveis coisas erradas que possam estar acontecendo. Então você olha para a resposta dada pela Sybren

    
por 09.09.2013 / 18:22