Instalando a chave ssh

1

Eu tenho tentado sem sucesso iniciar o ssh sem senha. A documentação que consegui encontrar foi um pouco irregular. Quanto a gerar as chaves pública e privada, tentei duas abordagens diferentes: 1. use o puttygen para gerar as chaves; 2. use o ssh-keygen do servidor para criar as chaves. Isso introduz minha primeira pergunta. É importante gerar a chave na máquina local? A maioria das documentações que tenho visto indica que essa etapa deve ser feita na máquina local, mas nada indica por que ou se isso é obrigatório.

A partir deste ponto, o processo parece ser mover a chave pública para a pasta .ssh do servidor e usar o comando cat para unir authorized_keys e a nova chave pública. Pelo que entendi neste momento, desde que o programa ssh está configurado para usar a chave, então você deve ser capaz de fazer o login sem senha. Infelizmente ainda não tive sucesso. Meu entendimento do processo está correto? O que pode estar fazendo com que a configuração não funcione? Eu só tenho compreensão limitada de ssh, então eu me sinto um pouco como um peixe fora d'água. Obrigado pela ajuda!

Configuração do sistema

  • Máquina local - Windows 7
  • Máquina host - * nix

Atualizar

Após testes adicionais baseados em respostas, o problema acabou sendo um problema de compatibilidade entre o putty e o openssh. Eu resolvi isso gerando as chaves usando o servidor (openssh) e, em seguida, usei puttygen para converter a chave em um formato reconhecido por massa. A partir daqui pude utilizar o concurso para disponibilizar a chave para o tortoiseSVN. Valeu pessoal!

    
por Kenneth 20.07.2011 / 07:24

3 respostas

1

Não importa qual máquina gera as chaves, contanto que você tenha as chaves públicas e privadas. Sem ambos, você terá um problema, pois um decifra o que o outro criptografa.

O que importa é o aplicativo usado para gerar as chaves. O PuTTYgen funcionará, mas para a compatibilidade com o OpenSSH, é claro, você precisará usar a "chave pública para colar no arquivo OpehSSH authorized_keys" e colá-la no arquivo de chaves autorizadas por usuário do servidor. Alguns servidores chamam de authorized_keys2 , outros apenas authorized_keys . (Depende da versão do OpenSSH e, possivelmente, se ele está configurado para aceitar informações de autenticação SSHv1.) Você também precisa ter certeza de que tem as permissões corretas (geralmente 600 e de propriedade do usuário) ou o OpenSSH irá ignorar isso.

Se você estiver usando o OpenSSH em ambas as máquinas, o material deve funcionar apenas enquanto a chave pública estiver em authorized_keys (ou o equivalente do servidor), e esse arquivo tiver as permissões corretas.

    
por 20.07.2011 / 07:33
1

Is it important to generate the key's on the local machine?

Sim. Muito mesmo. Você precisa gerar a chave como o usuário que você estará executando o cliente ssh como, na máquina que você estará executando. A chave está ligada a essa identidade.

Quanto ao arquivo authorized_keys, é necessário adicioná-lo ao diretório especificado pelo arquivo sshd_config. O padrão é ~ / .ssh /, então procure no diretório .ssh em sua casa no computador remoto. Se não houver um arquivo authorized_keys, basta criar um contendo a chave gerada no cliente. Caso contrário, anexe-o.

Se ainda assim não funcionar, você não está tentando autenticar com a chave (mais provável) ou o servidor não aceita login de chave (menos provável).

No PuTTY, você definiu a configuração da chave privada em Conexão > SSH > Auth?

    
por 20.07.2011 / 07:32
1

Um dos problemas mais frequentes com a codificação automática são as permissões. Minha linha de comando usual é assim (depois de conectar a máquina eu preciso adicionar keying para):

mkdir .ssh
cat >> .ssh/authorized_keys2
# hit paste to enter public key text, then enter, Ctrl-D, enter again
chmod -R go-rwx .ssh

Esse último comando faz toda a diferença; ele define as permissões * nix apropriadas nos arquivos e diretórios para que o SSH os aceite e os use corretamente.

Sem permissões adequadas nos arquivos, o OpenSSH (software típico do lado do servidor) simplesmente ignorará o arquivo de chaves.

Se você estiver usando o Tectia para criar as chaves na sua máquina Windows, talvez seja necessário converter o formato primeiro. Uma chave OpenSSH se parece com "ssh-dss ABCD .... ZYXW" em uma longa string. Se sua chave pública for várias linhas com cabeçalhos de tipo "---- Chave pública ----", converta primeiro. Supondo que você tenha enviado a chave pública como tectiakey.txt:

ssh-keygen -i -f tectiakey.txt >> ~/.ssh/authorized_keys2
    
por 20.07.2011 / 07:48

Tags