Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터와 같은 여러 무료 온라인 워크스테이션 중 하나를 사용하여 OnWorks 무료 호스팅 공급자에서 실행할 수 있는 git-remote-gcrypt 명령입니다.
프로그램:
이름
git-remote-gcrypt - GNU Privacy Guard로 암호화된 git remote
기술
원격 도우미 프로그램은 네트워크 전송을 처리하기 위해 git에 의해 호출됩니다. 이 도우미
핸들 지크립트:: Google을 사용하여 GPG로 암호화된 원격 저장소에 액세스할 URL
사용자 정의 형식.
지원되는 위치는 지방의, rsync:// and sftp : //, 여기서 리포지토리는
파일 세트 또는 대신 여기서 gcrypt는 동일한 표현을
임의의 git 전송을 통해 연결되는 git 저장소.
목표는 다음을 사용하여 기밀의 인증된 git 스토리지 및 협업을 제공하는 것입니다.
일반적인 신뢰할 수 없는 파일 호스트 또는 서비스. 우리가 이것을 얼마나 잘 충족하는지 평가할 수 있도록 도와주세요.
디자인 목표!
알림:
이것은 개발 버전입니다 -- 리포지토리 형식은 변경될 수 있습니다.
빠른 시작
· 설치하다 자식-원격-gcrypt 제공된 실행으로 설치.sh 스크립트.
· 푸시하여 암호화된 원격 생성:
git 원격 추가 cryptremote gcrypt::rsync://example.com:repo
git push cryptremote 마스터
> gcrypt: 새 저장소 설정
> gcrypt: 원격 ID:id:7VigUnLVYVtZx8oir34R
> [ 더 많은 라인 .. ]
> gcrypt로::[...]
> * [새 브랜치] 마스터 -> 마스터
구성
다음 자식 구성(1) 변수가 지원됩니다:
원격. .gcrypt 참가자
gcrypt.참가자
공백으로 구분된 GPG 키 식별자 목록입니다. 리모컨은 다음으로 암호화됩니다.
참가자와 이들의 서명만 허용됩니다. gpg -k 모든 공개 목록
알고 있는 키.
이 옵션을 설정하지 않으면 기본 키로 암호화하고 유효한 키를 수락합니다.
서명. 이 동작은 참가자를 설정하여 명시적으로 요청할 수도 있습니다.
에 간편한 설치.
이 어플리케이션에는 XNUMXµm 및 XNUMXµm 파장에서 최대 XNUMXW의 평균 출력을 제공하는 gcrypt 참가자 리모콘의 설정이 리포지토리보다 우선합니다.
변수 gcrypt.참가자.
원격. .gcrypt-게시-참가자
gcrypt.publish-참가자
기본적으로 참가자의 gpg 키 ID는 다음을 사용하여 암호화하여 가려집니다.
gpg -R. 이 옵션을 다음으로 설정 참된 해당 보안 조치를 비활성화합니다.
사용 문제 gpg -R gpg는 암호를 해독하기 위해 사용 가능한 각 비밀을 시도합니다.
사용 가능한 키를 찾을 때까지 차례로 키를 누릅니다. 이로 인해 불필요한 암호가 생성될 수 있습니다.
프롬프트.
원격. .gcrypt 서명 키
사용자 서명 키
(일반 git 구성의 후자) 서명에 사용할 키입니다. 당신은해야
세트 사용자 서명 키 기본 서명 키가 참가자의 일부가 아닌 경우
목록. 원격 버전을 사용하여 다른 원격 장치에 서명할 수 있습니다.
열쇠.
환경 변수
GCRYPT_FULL_REPACK
이 환경 변수는 푸시할 때 전체 재압축을 강제합니다.
사용 예
두 명의 참가자를 위한 리모컨을 설정하는 방법:
git 원격 추가 cryptremote gcrypt::rsync://example.com:repo
git config remote.cryptremote.gcrypt-참가자 "KEY1 KEY2"
git push cryptremote 마스터
Git 백엔드를 사용하는 방법:
# 대상 git repo가 이미 존재해야 하며
# `next` 분기를 덮어씁니다!
git 원격 추가 gitcrypt gcrypt::git@example.com:repo#다음
git push gitcrypt 마스터
URL 조각(#다음 여기)는 사용되는 백엔드 분기를 나타냅니다.
노트
협업
참가자와 일치하도록 각 푸시에 대해 매니페스트의 암호화가 업데이트됩니다.
구성. 각 푸시 사용자는 모든 협력자의 공개 키를 가지고 있어야 하며
올바른 참가자 구성.
종속성
rsync and 컬 리모컨용 재동기화: and SFTP: 각기. 주요 실행 파일
지원하는 POSIX 호환 셸이 필요합니다. 지방의.
GNU 개인정보보호 스테이블 가드
GPG 1.4 및 2 모두 지원됩니다. 개인 GPG 키가 필요합니다. GPG 구성
공개 키 암호화, 대칭 암호화 및
서명. 보다 사람 gpg
원격수행 ID
원격 ID는 비밀이 아닙니다. 단지 두 개의 리포지토리가
동일한 사용자를 구별할 수 있습니다. 원격 ID가 변경되면 경고가 표시됩니다.
리모컨이 다시 생성된 경우에만 발생합니다.
저장소 형성
EncSign(X): GPG 키 홀더에 서명 및 암호화
암호화(K,X): 대칭 키 알고리즘을 사용하여 암호화
해시(X): SHA-2/256
B: 분기 목록
L: 해시 목록(Hi) 및 키(Ki) 각 팩 파일에 대해
R: 원격 ID
리포지토리를 작성하려면 다음을 수행하십시오.
각 팩 파일 저장 P as 암호화(Ki, P) → P' 파일 이름에 Hi
어디에 Ki 새로운 임의의 문자열이고 해시(P') → Hi
스토어 EncSign(B || L || R) 매니페스트에서
저장소를 읽으려면:
GPG 키링을 사용하여 매니페스트 가져오기, 해독 및 확인 → (NS, L, R)
다음 경우 경고 R 이전에 본 원격 ID와 일치하지 않습니다.
각각 안녕, Ki in L:
파일 가져오기 Hi 서버에서 → P'
확인 해시(P') 성냥 Hi
해독 P' 사용 Ki → P 그 다음에 열다. P 자식으로
적하 목록 파일
예제 매니페스트 파일(간결성을 위해 줄임표 포함):
$ gpg -d 91bd0c092128cf2e60e1a608c31e92caf1f9c1595f83f2890ef17c0e4881aa0a
542051c7cd152644e4995bda63cc3ddffd635958 refs/heads/next
3c9e76484c7596eff70b21cbe58408b2774bedad refs/heads/master
pack :SHA256:f2ad50316...cd4ba67092dc4 z8YoAnFpMlW...3PkI2mND49P1qm
pack :SHA256:a6e17bb4c...426492f379584 82+k2cbiUn7...dgXfyX6wXGpvVa
keep :SHA256:f2ad50316...cd4ba67092dc4 1
저장소 :id:OYiSleGirtLubEVqJpFF
각 항목은 새 줄까지 확장되며 다음 중 하나와 일치합니다.
힘내 개체 ID 및 참조
팩 : :
팩 파일 해시(Hi) 및 해당 대칭 키(Ki).
유지 : :
Packfile 해시 및 해당 리팩 생성
REPO
원격 ID
내선 ...
보존되지만 사용되지 않는 확장 필드.
감지 중 GCRYPT REST
git url이 gcrypt 저장소인지 감지하려면 다음을 사용하십시오. git-remote-gcrypt --check url 종료 상태 if
저장소가 존재하고 해독할 수 있는 경우 0, 저장소가 gcrypt를 사용하지만 사용할 수 없는 경우 1
복호화되고 저장소가 gcrypt로 암호화되지 않은 경우(또는 액세스할 수 없는 경우) 100입니다.
이것은 repo 내용을 로컬 git 저장소로 가져와야 한다는 점에 유의하십시오.
gcrypt 저장소를 사용할 때 수행됩니다.
onworks.net 서비스를 사용하여 온라인에서 git-remote-gcrypt 사용