tortoisehg를 사용하는 Windows에서 SSH 프록시를 통해 원격 수은 저장소에 액세스

tortoisehg를 사용하는 Windows에서 SSH 프록시를 통해 원격 수은 저장소에 액세스

서버에 원격 수은 저장소(hg-gateway로 관리)가 있습니다. 해당 서버에 대한 액세스는 일반 대중에게 공개되지 않습니다. 그러나 방화벽은 SSH 프록시를 허용합니다.

tortoisehg를 사용하여 해당 저장소에 액세스하도록 Windows 클라이언트를 어떻게 구성합니까?

와는 다르다는 점 참고하세요이것, 해당 질문에는 프록시가 포함되지 않습니다. 나는

Host remote-dev
    user mercurialuser
    ProxyCommand ssh -q firewalluser@firewall

다음과 같은 수은 저장소에 액세스하기 위해

hg clone ssh://remote-dev/repo

효과적인 해결책을 찾았으며 커뮤니티의 이익을 위해 아래 답변에 게시하겠습니다.

답변1

시스템 관리 가정은 이 게시물의 끝에 있습니다.

  1. Putty, plink, pageant 및 puttygen을 다운로드하여 설치하세요.여기
  2. SSH 키가 없으면 puttygen을 실행하고 다음을 수행하세요.
    1. Linux에서 생성된 키가 이미 있는 경우:
      1. '기존 개인 키 파일 로드'를 선택하세요.
      2. 적절한 파일을 선택하십시오(파일 확장자 필터를 변경해야 함).
      3. 암호 삽입
      4. '개인 키 저장'을 선택하세요.
    2. 또 다른,
      1. '키 생성'을 선택하세요.
      2. 마우스를 무작위로 움직여라
      3. '개인 키 저장'을 선택하세요.
      4. '공개 키 저장'을 선택하세요.
  3. 시스템 관리자에게 개인 키가 아닌 공개 키를 보내십시오! (시스템 관리자: 아래를 읽어보세요)
  4. Windows 명령 프롬프트를 실행하고(시작 > 실행 후 'cmd' 입력) 'pageant.exe'를 실행합니다.
  5. 아이콘 표시줄의 아이콘을 마우스 오른쪽 버튼으로 클릭하고 '키 추가'를 클릭하세요.
  6. 이전에 저장한 PRIVATE 키를 선택하고 암호를 입력하세요.
  7. 퍼티를 시작하다

    1. 호스트 이름에 다음을 입력하세요. 저장소 서버의 IP 주소
    2. 세션을 ' remote-dev'(어떤 이름이라도 괜찮습니다) 로 저장합니다.
    3. 연결> 프록시로 이동
    4. 프록시 유형으로 '로컬'을 선택하세요.
    5. 프록시 호스트 이름: 방화벽 DNS 항목 또는 IP 주소
    6. 포트: 22(또는 방화벽에 SSH로 연결하는 데 적합한 포트)
    7. 사용자 이름: hg(또는 방화벽의 모든 사용자가 .ssh/authorized_files에 공개 SSH 키를 가지고 있음)
    8. 'telnet 명령 또는 로컬 프록시'에서 내용을 ' FULLPATH\plink.exe -v -nc %host:%port %user@%proxyhost'로 바꿉니다(c:\plink.exe와 같이 실행 가능한 plink.exe의 전체 경로를 사용하십시오).
    9. 연결> 데이터로 이동
    10. 자동 로그인 사용자 이름: hg(또는 저장소 서버의 모든 사용자가 hg-gateway를 실행 중임)
    11. '세션'으로 돌아가기
    12. 세션을 저장하려면 '저장'을 클릭하세요.
    13. '열기'를 클릭하세요
    14. 당신은 다음과 같은 것을보아야합니다

      Using username "hg".
      Authenticating with public key "imported-openssh-key" from agent
      Welcome to XXX code repository server!
      Your SSH access is restricted by hg-gateway.
      Summary of repos you have access to:
      
  8. 이제 다운로드 및 설치거북이

  9. tortoisehg 작업대 실행
  10. 파일 > 복제 저장소
  11. 출처: ssh:// remote-dev/ repo-name(remote-dev는 putty에서 세션을 호출한 것과 일치해야 합니다!)
  12. 목적지: 현지 목적지를 선택하세요
  13. '복제'를 클릭하세요
  14. 그게 다야.

사용자가 원격 저장소에 액세스하도록 허용하려면 다음 안내를 따르세요.

  1. 방화벽에서 .ssh/authorized_keys사용자의 공개 SSH 키를 추가하십시오.hg
  2. hg-gateway해당 사용자의 키를 hg서버의 사용자 에게 추가하는 데 사용

참고: 퍼티는 .ppk 형식으로 키를 생성하는 경향이 있습니다. 단일 라이너 SSH 키로 변환해야 합니다. Google은 여기에서 당신의 친구입니다.

가정:

  1. 방화벽에는 저장소에 액세스해야 하는 모든 사용자의 공개 키가 포함된 파일에 ' hg' 이라는 사용자가 있습니다..ssh/autorhized_keys
  2. 방화벽의 /etc/ssh/sshd_config 파일에는 다음과 유사한 줄이 포함되어 있습니다.

    Match Group dev
        ForceCommand nc -q0 reposerver_ip 22
    

    사용자는 연결할 호스트를 지정할 수 없습니다. 사용자 ' hg'은 분명히 Unix 그룹 ' dev'에 속해 있습니다.

관련 정보