Como conectar-se a um servidor remoto com meu par de chaves SSH, através do novo Windows 10 Linux bash?

1

Estou usando o novo Linux Bash Shell que foi disponibilizado recentemente na atualização de aniversário do Windows 10.

Este bash vem com um ponto de montagem do Linux (/ mnt / c / Users / [nome de usuário]) no Windows, que é usado como o usuário doméstico do Linux quando você inicia o bash do Linux, se estiver correto.

Mas, embora eu tenha colocado meu par de chaves SSH na pasta de usuário .ssh existente (/mnt/c/Users/[usernameername/.ssh), ele não é reconhecido ao conectar-se a um servidor remoto via SSH (ssh username @ distant- server.com). Ele sempre pede a senha do nome de usuário em vez de se autenticar com chave pública, o que é o caso dos meus outros clientes.

Além disso, a chave pública já está no arquivo allowed_keys do servidor distante.

Estou esquecendo de algo?

bolino
fonte

Respostas:

2

Seu perfil do bash pode ser acessado no Windows 10 por caminho:

% USERPROFILE% \ AppData \ Local \ lxss \ home \ [nome de usuário do bash]

Você deve colocar seu par de chaves SSH em

% USERPROFILE% \ AppData \ Local \ lxss \ home \ [nome de usuário do bash] \. Ssh

E não se esqueça das permissões no id_rsa. deve ser definido como 600, executando (no bash)

cd ~ / .ssh; chmod 600 id_rsa

Slipeer
fonte
2

Seu diretório inicial no bash não é o mesmo que o ponto de montagem da sua pasta de usuário do Windows ( /mnt/c/Users/[username]). Será o no mesmo formato que o Ubuntu seria: /home/username.

Você pode descobrir onde está o seu executando echo $HOME. Por exemplo, o meu é/home/john

Posso confirmar a adição de uma .sshpasta e a cópia da sua chave pública (normalmente id_rsa.pub) para o authorized_keysuso do comando cat id_rsa.pub > authorized_keys, que me permite conectar com êxito ao meu servidor SSH, que é apenas a autenticação de chave.

As permissões ativadas authorized_keysdevem ser definidas para 600 (somente leitura e gravação no proprietário), executando cd ~/.sshechmod 600 authorized_keys

mt025
fonte
tem a resposta, também devemos mencionar que o id_rsa deve ser modificado para 600
sebastienvg
Obrigado, está muito claro. Mas agora que coloquei meu par de chaves SSH no diretório certo e defini as permissões corretas, ele ainda não se conecta sem senha a um servidor SSH remoto. Poderia ser porque meu par de chaves é nomeado id_rsa_[myname]e não simplesmente id_rsa? Mas funciona assim em outros clientes meus.
bolino 14/09/16
@Bolino Acabei de atualizar o post. Eu apenas tive o mesmo problema que você estava tendo. Sua chave pública deve estar no authorized_keysarquivo. Veja os dois últimos parágrafos acima para obter informações.
mt025 19/09/16
Minha chave pública já está nos authorized_keysarquivos das máquinas distantes, pois eu as conecto regularmente usando a mesma chave e com outros clientes (não o Windows). Então você quer colocá-lo também no authorized_keysarquivo desse cliente local - no Windows linux bash? Não entendi exatamente o porquê, mas consegui e ainda não está funcionando.
bolino 22/09/16