Como configurar as Chaves SSH na máquina Windows (Cliente SSH) para acessar a VM do Linux do Azure?

15

A pesquisa no Google foi infrutífera, pois a maioria das pessoas tem uma variação ligeiramente diferente desse problema.

Estou tentando configurar uma VM do Linux do Azure com SSH (sem senha) para acessar a partir de uma máquina Windows. ATUALIZAÇÃO DE 2018: O requisito original era usar o WinSCP, mas estou bem em usar o Putty (na máquina Windows, que é o cliente SSH).

Como você pode configurar uma VM do Linux do Azure e gerar as chaves necessárias usando o menor número possível de ferramentas adicionais, no Windows?

Alex R
fonte
1
Chaves SSH são apenas chaves, não certificados. Use uma ferramenta como o xca para fazer certificados.
LawrenceC

Respostas:

16

Primeiro você precisa obter a chave pública em um formato para o authorized_keysarquivo OpenSSH .


Depois de obter a chave pública no authorized_keysformato, cole-a na caixa "Chave pública SSH" , ao provisionar a máquina Linux do Azure (ou ao redefinir a chave pública):

insira a descrição da imagem aqui

Martin Prikryl
fonte
1
Isso não funciona. O Azure passa pelos estágios iniciais da instalação da VM, mas aborta a reclamação de que a chave não é compatível com X.509.
Alex R
1
Ok, segui as instruções em azure.microsoft.com/en-us/documentation/articles/… e elas funcionaram. Basicamente, você executa "openssl req -x509 -nodes -days 365 -newkey rsa: 2048 -keyout myPrivateKey.key -out myCert.pem". O .pem precisa ser carregado por meio do portal do Azure. (Não estou publicando isso como resposta, porque fiz isso no meu Mac, e o pôster pediu uma solução para o Windows. O Google indica que as distribuições OpenSSL para Windows existem, mas eu não tentei nenhuma.)
Rohit Chatterjee
1
Além disso, a chave privada gerada no meu comentário acima - myPrivateKey.key - precisa ser importada para PuttyGen e convertida em PPK. O Putty não usará o arquivo .key.
precisa saber é o seguinte
@RohitChatterjee Isso foi tudo mal-entendido. O OP perguntou sobre a chave privada (dando a impressão de que ele deseja usá-la como chave do host), enquanto a pergunta era realmente sobre chave pública. Atualizei minha resposta de acordo.
Martin Prikryl
Na verdade, isso ainda está um pouco ruim, pois eu queria usar o WinSCP, não o Putty. Vou editar a pergunta mais uma vez para corrigir esta resposta.
Alex R
2

A resposta correta foi fornecida nos comentários de @Rohit Chatterjee:

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout myPrivateKey.key -out myCert.pem

Explicação:

O portal do Azure solicita um PEM / CER como parte do processo de provisionamento da VM (embora seja possível fornecer uma senha). O PuttyGen cria um PEM a partir de um PPK, pois essa resposta é descrita, mas a saída não é aceita pelo portal. Se eu descobrir isso, vou postar uma resposta aqui ... - Rohit Chatterjee 29 / Jan às 4:18

Ok, segui as instruções em azure.microsoft.com/en-us/documentation/articles/… e elas funcionaram. Basicamente, você executa "openssl req -x509 -nodes -days 365 -newkey rsa: 2048 -keyout myPrivateKey.key -out myCert.pem". O .pem precisa ser carregado por meio do portal do Azure. (Não estou publicando isso como resposta, porque fiz isso no meu Mac, e o pôster pediu uma solução para o Windows. O Google indica que as distribuições OpenSSL para Windows existem, mas eu não tentei nenhuma.) - Rohit Chatterjee 29 de janeiro às 4:49

Além disso, a chave privada gerada no meu comentário acima - myPrivateKey.key - precisa ser importada para o PuttyGen e convertida em um PPK. O Putty não usará o arquivo .key. - Rohit Chatterjee 29/01 at 4:51

Alex R
fonte
0

Vejo que essa é uma pergunta mais antiga, mas se você estiver usando o Windows 10, agora é possível fazer o SSH a partir do Windows Subsystem for Linux. Para isso, basta configurar chaves como você faria no Linux comum.

Charles Burge
fonte