VM의 Openssh는 호스트의 Pageant를 사용하여 인증합니다.

VM의 Openssh는 호스트의 Pageant를 사용하여 인증합니다.

업데이트: 네트워크 설계가 완전히 잘못된 것 같습니다. 대신 인증 흐름이 반대여야 합니다. 그래서 이 질문은 이제 논쟁의 여지가 있습니다.


현재 설정: Virtualbox를 사용하는 Windows 7 호스트의 Linux VM(CentOS 7.1 및 Ubuntu 15.04와 같은 일반적이고 가장 업데이트된 것으로 가정).

TL;DR 질문: VM 내에서 openssh를 실행하여 다음 작업을 수행할 수 있습니까?~ 아니다키 인증을 위해 로컬 ssh-agent를 사용하지만 대신 Windows 호스트에서는 Peagent를 사용하시겠습니까? 더 복잡한 설정이 허용됩니다.

긴 질문: 원래 호스트와 VM에는 여러 개의 키 복사본이 있습니다. 호스트에는 Putty 형식의 키가 있고, 공유 폴더를 통해 VM에는 openssh 키 형식이 있으며, 대부분은 편의상 비밀번호로 보호되지 않습니다. 하지만 최근에는 이를 통합하고 더 많은 보호 기능을 추가해야 할 필요성을 느꼈습니다. 키는 주로 Git과 같은 버전 제어 시스템을 통해 원격 관리 및 소스 코드 체크아웃을 위한 것입니다. 요구 사항은 다음과 같습니다.

  1. Windows 호스트는 원격 서버에 SSH로 연결할 수 있으며 SSH를 통해 git을 사용할 수 있습니다.
  2. Linux VM은 원격 서버에 SSH를 통해 연결할 수 있으며 SSH를 통해 git을 사용할 수 있습니다.
  3. 키는 VM이 ​​아닌 호스트에만 저장됩니다. (이것은 SSH 에이전트 전달 설정이 아님을 의미합니다)

포인트 1(Windows 호스트가 인증을 위해 미인 대회를 사용하도록 허용)은 비교적 간단합니다. git 설정은 기본적으로 올바른 $GIT_SSH환경 변수를 설정하는 것입니다. Putty뿐만 아니라 MinGW openssh도 비밀번호 관리자(KeePass 2.x 사용)에 모든 키를 저장하고 사용하기에 적합한 소켓을 내보내어 미인대회에 연결할 수 있습니다 $SSH_AUTH_SOCK.KeeAgent 플러그인. 보다이 ServerFault 게시물또 다른 접근 방식을 위해.

그러나 지금까지는 Linux VM을 통해 대회에 액세스할 수 없습니다. 나는 다음 접근법을 시도했습니다하지만 실패했다:

  • SSH 서버가 Windows 호스트에 중간 홉으로 설치되어 있습니다.모바쉬하지만 선택은 중요하지 않습니다. 계속 읽어보세요.
  • plink.exe그런 다음 VM 내에서 원격 실행을 시도하십시오 . 이것은 ssh host1 ssh host2내 목적에 충분히 적합한 순진한 접근 방식과 유사합니다 .
  • 하지만, plink.exe가 Windows SSH 서버 내에서 실행될 때 어떤 키에도 액세스하지 못했습니다. plink.exe를 직접 실행하면 cmd작동합니다. Windows에서 실행되는 대부분의 SSH 서버는 Cygwin을 기반으로 합니다. 이거랑 꽤 비슷해 보이는데Putty/cygwin 콤보 버그 보고서.

메모:여기에 비슷한 질문이 있을 수 있습니다., 하지만 저는 Vagrant를 사용하지 않습니다.

답변1

원래 디자인이 완전히 잘못된 것 같습니다. 각 가상 머신에서 sshd 서버를 켜는 것이 훨씬 더 깔끔할 것입니다.

AllowAgentForwarding yes

그런 다음 각 VM에 SSH로 접속합니다. 이렇게 하면 모든 VM은 SSH 키를 설치할 필요 없이 자동으로 호스트의 인증 에이전트를 사용합니다.

관련 정보