Suas chaves SSH públicas estão dificultando? Experimente uma destas soluções.

SSH é uma ferramenta útil para conectar-se a máquinas remotas, mas você pode encontrar um erro de “Permissão negada (chave pública)” envolvendo sua chave pública no Linux. Felizmente, existem algumas soluções fáceis que você pode tentar para solucionar o problema.

O que é uma chave pública?

Ao gerar um par de chaves para SSH no Linux, você receberá uma chave pública e uma chave privada. A chave privada permanecerá com você como um segredo bem guardado, mas a chave pública é o que será transmitido aos servidores remotos para permitir que você faça login sem senha. Seu cliente SSH local combinará a chave pública com a chave privada quando você se conectar.

A vantagem deste método é que basta fornecer a chave pública. Contanto que você mantenha sua chave privada privada, isso deverá mantê-lo seguro caso sua chave pública seja comprometida. A chave pública será inútil por si só.

OpenSSH, o cliente e servidor SSH mais utilizado no mundo do código aberto, requer o arquivo que contém qualquer chaves públicas na máquina remota (".ssh/authorized_keys" em seu diretório inicial), para ter certas permissões. Não funcionará se as permissões de gravação estiverem definidas para outros usuários, o que é conhecido como "gravável mundialmente". Como o nome do diretório começa com um ponto (.), ele não aparecerá em nenhuma listagem ls, a menos que você use o comando

instagram viewer
ls -A.

As permissões poderão mudar se o arquivo tiver sido copiado de outro computador ou se você mesmo o tiver criado. Felizmente, isso é fácil de corrigir.

Verifique suas permissões de chave pública

O arquivoauthorized_keys é simplesmente um arquivo de texto simples que contém todas as chaves públicas dos clientes que você deseja que possam fazer login em sua conta na máquina remota. Para ver suas permissões, use o comando ls com a opção -l:

ls -l ~/.ssh/authorized_keys

Isso mostrará as configurações de permissão do proprietário, do grupo e de outros usuários. Preste atenção nas últimas seis letras da string. Se você vir "w" neles, isso significa que o grupo ou outras pessoas podem escrever para ele, tornando-o inseguro.

Você deseja que este arquivo possa ser gravado por você, mas não pelo grupo ou outras pessoas. Para dar acesso aos usuários corretos, você pode alterar as permissões com chmod.

Existem duas maneiras: numericamente e simbolicamente.

A forma numérica é mais curta, mas você precisa memorizar os números de permissão octais:

chmod 700 ~/.ssh/authorized_keys

O método simbólico é mais mnemônico:

chmod go-w ~/.ssh/authorized_keys

Copie chaves com segurança usando ssh-agent

Você pode copiar e colar manualmente quaisquer chaves públicas da sua máquina no ~/.ssh/.authorized_keys arquivo, mas usar o programa ssh-agent reduzirá as chances de erros de permissão.

Para iniciar o ssh-agent, use este comando:

eval "$(ssh-agent-s)"

Para fazer login em um servidor remoto usando ssh-agent, use a opção -A com ssh

ssh -A [email protected]

Verifique as configurações de sshd do servidor remoto

Se algum desses esforços falhar, talvez seja necessário fazer algumas alterações na configuração do servidor sshd na máquina remota se você tiver acesso root. Caso contrário, você provavelmente precisará entrar em contato com o administrador do sistema para ajudá-lo a resolver quaisquer problemas de conexão SSH. Este é um método de último recurso porque pode tornar o seu sistema menos seguro.

O arquivo de configuração de todo o sistema para sshd é /etc/ssh/sshd_config. Como é propriedade do root, você precisará usar o sudo para editá-lo. Por exemplo, para editá-lo com o Vim:

sudo vim /etc/ssh/sshd_config

Para permitir que o sshd permita que você faça login mesmo que seu arquivo autorizado_keys seja gravável mundialmente, defina a opção "StrictModes" como "não" neste arquivo.

Salve-o e reinicie o servidor SSH:

sudo systemctl restart sshd.service

Agora você pode corrigir erros de permissões de chave pública SSH

Você pode encontrar erros relacionados às chaves públicas SSH em sistemas remotos. Felizmente, na maioria das vezes tudo o que você precisa fazer é verificar e definir as permissões do arquivo para que ninguém mais possa ver sua chave. Você também pode usar o ssh-agent para conexões mais confiáveis. Como último recurso, você pode tornar o servidor SSH menos rigoroso.