Openssh na VM autentica usando Pageant no host

1

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

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

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

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

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

O ponto 1 (permitir que o host do Windows use pageant para auth) é relativamente trivial; git setup é essencialmente baixo para configurar a variável de ambiente $GIT_SSH correta. Não apenas Putty, mesmo o MinGW openssh pode se conectar ao concurso, armazenando todas as chaves dentro do gerenciador de senhas (usando o KeePass 2.x) e exportando um soquete adequado para uso como $SSH_AUTH_SOCK usando a plugin do KeeAgent . Veja esta postagem ServerFault para outra abordagem.

Mas até agora não há sorte em acessar o concurso via Linux VM. Eu tentei a seguinte abordagem mas falhou :

  • O servidor SSH é instalado no host Windows como um salto intermediário (estou tentando Mobassh , mas a escolha não deve importar - leia mais ).
  • Em seguida, tente executar o plink.exe remoto a partir da VM. Isso é semelhante à abordagem ingênua ssh host1 ssh host2 , o que é bom o suficiente para o meu propósito.
  • No entanto, , o plink.exe não conseguiu acessar nenhuma chave quando executado no servidor SSH do Windows. Rodando o plink.exe diretamente em cmd works. A maioria do servidor SSH disponível em execução no Windows é baseada no Cygwin. Parece bastante semelhante a este relatório de erros de combinação putty / cygwin .

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

    
por Abel Cheung 15.06.2015 / 08:15

1 resposta

1

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

AllowAgentForwarding yes

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

    
por 16.06.2015 / 12:55