Como converter pares de chaves SSH gerados usando PuTTYgen (Windows) em pares de chaves usadas por ssh-agente e Keychain (Linux)

StackOverflow https://stackoverflow.com/questions/2224066

Pergunta

Eu gerado pares de chaves usando PuTTYgen e foi logging em usar Pageant, de modo que eu tenho que entrar no meu frase-senha apenas uma vez quando meu sistema inicializa.

Como posso conseguir isso em Linux? Já ouvi falar de keychain mas ouvi dizer que ele usa um formato de par de chaves diferente - eu não quero mudar minhas teclas do Windows e seria bom se eu poderia perfeitamente se conectar da mesma maneira no Windows e no Linux.

Foi útil?

Solução

suportes puttygen exportadores sua chave privada para um formato compatível com OpenSSH. Você pode então usar ferramentas OpenSSH para recriar a chave pública.

  1. Open PuTTYgen
  2. Clique em Carregar
  3. Coloque sua chave privada
  4. Vá para Conversions->Export OpenSSH e exportar a sua chave privada
  5. Copie sua chave privada para ~/.ssh/id_dsa (ou id_rsa).
  6. Criar a versão RFC 4716 da chave pública usando ssh-keygen

    ssh-keygen -e -f ~/.ssh/id_dsa > ~/.ssh/id_dsa_com.pub
    
  7. Converter a versão RFC 4716 da chave pública para o formato OpenSSH:

    ssh-keygen -i -f ~/.ssh/id_dsa_com.pub > ~/.ssh/id_dsa.pub
    

este e este para obter mais informações.

Outras dicas

Se tudo que você tem é uma chave pública de um usuário em formato PuTTY de estilo, você pode convertê-lo para o formato OpenSSH padrão assim:

ssh-keygen -i -f keyfile.pub > newkeyfile.pub

Referências

Copiar do artigo

Eu continuo esquecendo isso, então eu vou escrevê-lo aqui. Não-geeks, apenas continuar caminhando.

A maneira mais comum de fazer uma chave no Windows está usando Putty / PuTTYgen. Puttygen fornece um utilitário elegante para converter uma chave privada linux para formato Putty. No entanto, o que não é abordada é que quando você salvar o chave pública usando PuTTYgen que não vai funcionar em um servidor linux. janelas coloca alguns dados em diferentes áreas e adiciona quebras de linha.

A Solução: Quando você chegar à tela de chave pública na criação do seu par de chaves em puttygen, copiar a chave pública e colá-lo em um texto arquivo com o pub extensão. Você vai poupar sysadmin horas de frustração lendo mensagens como esta.

No entanto, os administradores de sistemas, você invariavelmente obter o arquivo de chave wonky que lança nenhuma mensagem de erro no log de auth exceto, nenhuma chave encontrada, tentando senha; mesmo que as chaves de toda a gente está trabalhando bem, e você enviou esta de volta a chave para o usuário 15 vezes.

ssh-keygen -i -f keyfile.pub > newkeyfile.pub

Se converter uma chave pública PuTTYgen existente para o formato OpenSSH.

Novas versões do PuTTYgen (o meu é 0,64) são capazes de mostrar a chave pública OpenSSH para ser colado no sistema linux no arquivo .ssh/authorized_keys, como mostrado na imagem a seguir:

enter descrição da imagem aqui

Como alternativa, se você quiser pegar as chaves públicas e privadas de um PuTTY formatado arquivo de chave que você pode usar puttygen em sistemas * nix. Para a maioria dos sistemas de apt-base puttygen é parte do pacote putty-tools.

Produzir uma chave privada de um PuTTY formatada keyfile:

$ puttygen keyfile.pem -O private-openssh -o avdev.pvk

Para a chave pública:

$ puttygen keyfile.pem -L

sudo apt-get install putty

Isto irá instalar automaticamente a ferramenta puttygen.

Agora, para converter o arquivo PPK para ser usado com o comando SSH execute o seguinte no Terminal

puttygen mykey.ppk -O private-openssh -o my-openssh-key

Em seguida, você pode se conectar via SSH com:

ssh -v user@example.com -i my-openssh-key

http://www.graphicmist.in/use-your-putty-ppk-file-to-ssh-remote-server-in-ubuntu/#comment-28603

Recentemente, tive este problema como eu estava movendo-se de Putty para Linux para Remmina para Linux. Então, eu tenho um monte de arquivos PPK para Putty no meu diretório .putty como eu tenho usado é para 8 anos. Para isso eu usei um simples comando for para shell bash para fazer todos os arquivos:

cd ~/.putty
for X in *.ppk; do puttygen $X -L > ~/.ssh/$(echo $X | sed 's,./,,' | sed 's/.ppk//g').pub; puttygen $X -O private-openssh -o ~/.ssh/$(echo $X | sed 's,./,,' | sed 's/.ppk//g').pvk; done;

Muito rápido e direto ao ponto, começou o trabalho feito para todos os arquivos que putty tinha. Se ele encontrar uma chave com uma senha que irá parar e pedir a senha para essa chave em primeiro lugar e, em seguida, continuar.

É provavelmente mais fácil para criar suas chaves no Linux e usar PuTTYgen para converter as chaves para o formato PuTTY.

PuTTY Faq: A.2.2

Eu acho que o TCSgrad estava tentando perguntar (há alguns anos) foi a forma de tornar o Linux se comportam como sua máquina de Windows faz. Ou seja, não é um agente (concurso) que detém uma cópia descriptografado de uma chave privada para que a senha só precisa ser colocado em uma vez. Em seguida, o cliente ssh, massa de vidraceiro, pode fazer login para máquinas onde a sua chave pública é listado como "autorizado" sem uma senha rápida.

O analógico para isso é que o Linux, agindo como um cliente ssh , tem um agente segurando uma chave privada decifrada de modo que quando TCSgrad tipos "host ssh" o comando ssh vai ter a sua chave privada e ir sem ser solicitado para uma senha. hospedeiro seria, naturalmente, tem que estar segurando a chave pública no ~ / .ssh / authorized_keys.

O análogo Linux para este cenário é executada usando ssh-agent (o análogo de concurso) e ssh-add (o analógico para adicionar uma chave privada para concurso).

O método que funcionou para mim foi usar: $ Ssh-agent $ SHELL Que US $ SHELL foi o truque de mágica que eu precisava para fazer o agente de execução e estadia em execução. Descobri que em algum lugar na 'net e terminou algumas horas de bater minha cabeça contra a parede.

Agora temos o analógico de correr concurso, um agente com sem chaves carregado.

Digitação $ Ssh-add por si só irá adicionar (por padrão) as chaves privadas listadas nos arquivos de identidade padrão em ~ / .ssh.

Um artigo web com muito mais detalhes podem ser encontrados aqui

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top