Como usar a chave pública SSH com o PuTTY para conectar-se a uma máquina Linux

5

Estou tentando definir uma conexão de chave SSH pública de uma máquina com Windows 7 para uma máquina com Red Hat. O objetivo final é usar pscp (versão de scp do PuTTY) do terminal de comando sem a necessidade de digitar a senha repetidamente.

Após a documentação do PuTTY e outras fontes on-line, usei PuTTYgen para gerar um par de chaves. Eu então copiei a chave pública gerada para um arquivo ~/.ssh/authorized_keys na máquina Linux (até onde eu sei, ele roda o servidor OpenSSH).

Para verificar a conexão, executo o PuTTY e defino o nome de usuário e o arquivo da chave privada nos locais apropriados em sua GUI.

No entanto, ao tentar se conectar usando o SSH do PuTTY, a conexão usa o nome de usuário predefinido, mas recebo uma mensagem de erro " Server refused our key " e uma solicitação de senha.

Eu então tentei copiar e colar o texto da chave pública da GUI do PuTTYgen para o arquivo authorized_keys , mas também não funcionou.

  1. Como devo configurar um formulário de conexão de chave pública do Win 7 para o Linux?

  2. Como eu uso isso com pscp (em vez do ssh do PuTTY)?

Atualização: Pensando que o problema pode estar no formato de chave PuTTYgen , usei ssh-keygen na máquina Linux para criar um par de chaves RSA. Ela gerou uma chave privada id_rsa e uma chave pública id_rsa.pub . A tentativa de usar > ssh-add id_rsa não foi bem-sucedida, pois a resposta foi " Could not open a connection to your authentication agent. ", então usei > cp id_rsa.pub authorized_keys .

Eu então copiei esses arquivos para a máquina Windows e usei PuTTYgen para converter a chave privada em um formato de chave privada PuTTY ( *.ppk ). Tentando se conectar usando a nova chave, recebo a resposta " Server refused our key ".

    
por ysap 07.11.2013 / 22:05

3 respostas

3

Você precisa seguir isso corretamente.

Configure a chave pública no servidor SSH

Copie a chave pública para o servidor SSH via SFTP

putpublicy_key

LoginnoservidorSSHverificaachavepúblicacopiada

ls -l public_key

Como a chave pública não tem permissões, altere-a para 400 (para leitura)

chmod400public_key

Useaferramentassh-keygenparacriarachavepúblicadoformatoopenSSH

ssh-keygen -if public_key > public_key_openssh_format

Adicione a chave pública openSSH criada aos arquivos authorized_keys

catpublic_key_openssh_format>>~/.ssh/authorized_keys

Verifiqueaspermissõesdapasta.sshedoarquivoauthorized_keysparapermissõesdeacesso

ls -al ~/.ssh

Verifique os pares de chaves com o PuTTY

Agora, a autenticação baseada em chave pode ser verificada com o PuTTY. Digite o nome do host e a porta

Selecioneachaveprivada(.ppk)

Confirme o alerta de segurança

Seaconfiguraçãoestivercorreta,aconexãoseráestabelecidacomsucesso

Se você ainda estiver preso. Então você tem que recriar o usuário e seguir as etapas e configurar a chave pública novamente.

O usuário pode ser recriado usando o seguinte comando:

Faça uma cópia da pasta do usuário e exclua-a antes da recriação.

yast2 users add username=userName cn=" User for test" password="password" gid=100 grouplist=dialout,video type=local
    
por 08.11.2013 / 04:58
0

Concluí que o PuTTY ou PuTTYgen está quebrado. Isso não é um erro de usuário trivial em relação aos formatos de arquivo. Se eu calcular o hash da chave pública autorizada no servidor, ela corresponderá ao hash exibido pelo PuTTYgen no cliente em que gerou as chaves. No entanto, o servidor recusa a chave como se não correspondesse.

Eu tentei isso com o OS X, Linux e Cisco & Roteadores de zimbro. A chave pública ssh-rsa do PuTTYgen simplesmente não funciona.

Se você gerar as chaves com o OpenSSH e, em seguida, importá-las para o PuTTYgen para salvar como .ppk para o PuTTY, tudo funcionará bem.

    
por 01.01.2015 / 15:23
0

Talvez seja necessário definir a opção "Conexão / SSH / Autenticação / Permitir encaminhamento de agente" como "true". O comando ssh-add funcionou para mim depois de eu ter feito isso.

    
por 20.01.2015 / 22:35