Openssh na autenticação de VM usando Pageant no host

Openssh na autenticação de VM usando Pageant no host

Atualizar: parece que o design da rede estava completamente errado e o fluxo de autenticação deveria ser o contrário. Portanto, esta questão é discutível agora.


Configuração atual: Linux VM (suponha que sejam comuns e mais atualizados como CentOS 7.1 e Ubuntu 15.04) no host Windows 7, usando Virtualbox.

Pergunta TL; DR: É possível ter o openssh rodando dentro da VM paranãousar ssh-agent local para autenticação de chave, mas usar Peagent no host Windows? Uma configuração mais complexa é aceitável.

pergunta longa: Originalmente, existem várias cópias de chaves no host e na VM - no formato Putty no host e no formato de chave openssh nas VMs por meio de pasta compartilhada, e muitas delas não são protegidas por senha por conveniência. Mas recentemente sinto necessidade de consolidá-los e adicionar mais proteção. As chaves são para administração remota e verificação do código-fonte por meio de sistemas de controle de versão, principalmente Git. Aqui estão os requisitos:

  1. O host do Windows pode fazer ssh para o servidor remoto e pode usar git por meio de ssh.
  2. Linux VM pode fazer ssh para servidor remoto e pode usar git por meio de ssh.
  3. As chaves são armazenadas apenas no host, não nas VMs. (O que significa que esta não será uma configuração de encaminhamento de agente ssh)

O ponto 1 (permitir que o host do Windows use pageant para autenticação) é relativamente trivial; A configuração do git consiste essencialmente em definir $GIT_SSHa variável de ambiente correta. Não apenas o Putty, até o MinGW openssh pode se conectar ao concurso, armazenando todas as chaves dentro do gerenciador de senhas (usando KeePass 2.x) e exportando um soquete adequado para uso como $SSH_AUTH_SOCKusando oPlug-in KeeAgent. Veresta postagem ServerFaultpara outra abordagem.

Mas até agora não houve sorte em acessar o concurso via Linux VM. Eu tentei a seguinte abordagemmas falhou:

  • O servidor SSH está instalado no host Windows como um salto intermediário (estou tentandoMobasshmas a escolha não deve importar – continue lendo).
  • Em seguida, tente executar remotamente plink.exede dentro da VM. Isso é semelhante à abordagem ingênua, ssh host1 ssh host2que é suficiente para o meu propósito.
  • No entanto, plink.exe não conseguiu acessar nenhuma chave quando executado no servidor SSH do Windows. Executar plink.exe diretamente em cmdobras. A maioria dos servidores SSH disponíveis em execução no Windows são baseados em Cygwin. Parece bastante semelhante a issorelatório de bug combinado putty/cygwin.

Observação:Uma pergunta possivelmente semelhante aqui, mas não estou usando o Vagrant.

Responder1

Parece que o design original estava completamente errado. Seria muito mais fácil ativar o servidor sshd em cada máquina virtual com

AllowAgentForwarding yes

E então faça ssh em cada VM. Dessa forma, todas as VMs usariam automaticamente o agente de autenticação do host sem a necessidade de ter nenhuma chave ssh instalada.

informação relacionada