
서버에 원격 수은 저장소(hg-gateway로 관리)가 있습니다. 해당 서버에 대한 액세스는 일반 대중에게 공개되지 않습니다. 그러나 방화벽은 SSH 프록시를 허용합니다.
tortoisehg를 사용하여 해당 저장소에 액세스하도록 Windows 클라이언트를 어떻게 구성합니까?
와는 다르다는 점 참고하세요이것, 해당 질문에는 프록시가 포함되지 않습니다. 나는
Host remote-dev
user mercurialuser
ProxyCommand ssh -q firewalluser@firewall
다음과 같은 수은 저장소에 액세스하기 위해
hg clone ssh://remote-dev/repo
효과적인 해결책을 찾았으며 커뮤니티의 이익을 위해 아래 답변에 게시하겠습니다.
답변1
시스템 관리 가정은 이 게시물의 끝에 있습니다.
- Putty, plink, pageant 및 puttygen을 다운로드하여 설치하세요.여기
- SSH 키가 없으면 puttygen을 실행하고 다음을 수행하세요.
- Linux에서 생성된 키가 이미 있는 경우:
- '기존 개인 키 파일 로드'를 선택하세요.
- 적절한 파일을 선택하십시오(파일 확장자 필터를 변경해야 함).
- 암호 삽입
- '개인 키 저장'을 선택하세요.
- 또 다른,
- '키 생성'을 선택하세요.
- 마우스를 무작위로 움직여라
- '개인 키 저장'을 선택하세요.
- '공개 키 저장'을 선택하세요.
- Linux에서 생성된 키가 이미 있는 경우:
- 시스템 관리자에게 개인 키가 아닌 공개 키를 보내십시오! (시스템 관리자: 아래를 읽어보세요)
- Windows 명령 프롬프트를 실행하고(시작 > 실행 후 'cmd' 입력) 'pageant.exe'를 실행합니다.
- 아이콘 표시줄의 아이콘을 마우스 오른쪽 버튼으로 클릭하고 '키 추가'를 클릭하세요.
- 이전에 저장한 PRIVATE 키를 선택하고 암호를 입력하세요.
퍼티를 시작하다
- 호스트 이름에 다음을 입력하세요. 저장소 서버의 IP 주소
- 세션을 '
remote-dev
'(어떤 이름이라도 괜찮습니다) 로 저장합니다. - 연결> 프록시로 이동
- 프록시 유형으로 '로컬'을 선택하세요.
- 프록시 호스트 이름: 방화벽 DNS 항목 또는 IP 주소
- 포트:
22
(또는 방화벽에 SSH로 연결하는 데 적합한 포트) - 사용자 이름:
hg
(또는 방화벽의 모든 사용자가 .ssh/authorized_files에 공개 SSH 키를 가지고 있음) - 'telnet 명령 또는 로컬 프록시'에서 내용을 '
FULLPATH\plink.exe -v -nc %host:%port %user@%proxyhost
'로 바꿉니다(c:\plink.exe와 같이 실행 가능한 plink.exe의 전체 경로를 사용하십시오). - 연결> 데이터로 이동
- 자동 로그인 사용자 이름: hg(또는 저장소 서버의 모든 사용자가 hg-gateway를 실행 중임)
- '세션'으로 돌아가기
- 세션을 저장하려면 '저장'을 클릭하세요.
- '열기'를 클릭하세요
당신은 다음과 같은 것을보아야합니다
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:
이제 다운로드 및 설치거북이
- tortoisehg 작업대 실행
- 파일 > 복제 저장소
- 출처: ssh://
remote-dev
/repo-name
(remote-dev는 putty에서 세션을 호출한 것과 일치해야 합니다!) - 목적지: 현지 목적지를 선택하세요
- '복제'를 클릭하세요
- 그게 다야.
사용자가 원격 저장소에 액세스하도록 허용하려면 다음 안내를 따르세요.
- 방화벽에서
.ssh/authorized_keys
사용자의 공개 SSH 키를 추가하십시오.hg
hg-gateway
해당 사용자의 키를hg
서버의 사용자 에게 추가하는 데 사용
참고: 퍼티는 .ppk 형식으로 키를 생성하는 경향이 있습니다. 단일 라이너 SSH 키로 변환해야 합니다. Google은 여기에서 당신의 친구입니다.
가정:
- 방화벽에는 저장소에 액세스해야 하는 모든 사용자의 공개 키가 포함된 파일에 '
hg
' 이라는 사용자가 있습니다..ssh/autorhized_keys
방화벽의 /etc/ssh/sshd_config 파일에는 다음과 유사한 줄이 포함되어 있습니다.
Match Group dev ForceCommand nc -q0 reposerver_ip 22
사용자는 연결할 호스트를 지정할 수 없습니다. 사용자 '
hg
'은 분명히 Unix 그룹 'dev
'에 속해 있습니다.