如何使用 gcrypt 或其他加密远程仓库?
How to encrypt remote repo, with gcrypt or other?
目标是将我的代码加密存储在 BitBucket 远程存储库中。有些东西应该处理加密和解密,所以我登陆了 gcrypt 或完整,git-remote-gcrypt。
我有一个配置了 SSH 密钥的 Bitbucket 帐户。
这是我试过的。
rsync
我从手册中复制了这些命令。
git remote remove cryptremote
git remote add cryptremote gcrypt::rsync://git@bitbucket.org/user/cryptremote.git
git config remote.cryptremote.gcrypt-participants "user"
git push cryptremote master
控制台:
gcrypt: Repository not found: rsync://git@bitbucket.org/user/cryptremote.git
gcrypt: Setting up new repository
protocol version mismatch -- is your shell clean?
(see the rsync man page for an explanation)
rsync error: protocol incompatibility (code 2) at compat.c(600) [sender=v3.2.3]
error: failed to push some refs to 'gcrypt::rsync://git@bitbucket.org/user/cryptremote.git'
freetalk@bitbucket.org
:我确认这永远不会起作用,因为 SSH URL 到 Git 远程存储库托管服务将始终使用“git
”用户(并依靠 SSH 密钥来验证和识别实际用户帐户)。
spwhitton/git-remote-gcrypt
commit 6233fde 确实提到:
Remove deprecated gcrypt::ssh://
(use rsync instead)
所以 rsync
URI 似乎更受支持,如 commit 3b69f81
你的情况:
gcrypt::rsync://git@bitbucket.org/user/cryptremote.git
^^^^^ ^^^
对于任何“protocol version mismatch -- is your shell clean?
”错误消息,请尝试 put in your .bashrc
:
# for non-interactive sessions stop execution here -- https://serverfault.com/a/805532/67528
[[ $- != *i* ]] && return
但还要检查一个 possible rsync
version mismatch (for instance, using a Bitbucket pipeline 只是为了显示 rsync
版本)。
与 illustrated here 一样,如果 SSH 无法正常工作,gcrypt::https://user@bitbucket.org/user/test.git
HTTPS URL 可能会更好。
感谢评论,我让它可以通过 HTTPS 工作。
我为自己和你写了一个小教程。
使用 git-remote-gcrypt
加密远程 Git 存储库
一般工作流程
- 生成 GPG 私钥和 public 密钥 (GnuPG Linux)
- 创建远程仓库
- 初始化一个本地仓库
- 配置远程和 gcrypt(下面的命令)
- 克隆或推送
使用 rsync 的 gcrypt 示例不适用于 Bitbucket
git remote add cryptremote gcrypt::rsync://git@bitbucket.org/USER/cryptremote.git
# gcrypt docs use :user but git usually uses /user format
# git remote add cryptremote gcrypt::rsync://git@bitbucket.org:USER/cryptremote.git
git config remote.cryptremote.gcrypt-participants "GPG_KEY_ID_OR_KEY_NAME"
git config remote.cryptremote.gcrypt-signingkey "GPG_KEY_ID_OR_KEY_NAME"
git push cryptremote master
gcrypt: Repository not found: rsync://git@bitbucket.org/user/cryptremote.git
gcrypt: Setting up new repository
protocol version mismatch -- is your shell clean?
(see the rsync man page for an explanation)
rsync error: protocol incompatibility (code 2) at compat.c(600) [sender=v3.2.3]
error: failed to push some refs to 'gcrypt::rsync://git@bitbucket.org/user/cryptremote.git'
基于 HTTPS 的 gcrypt
来自手册页的模板,已修改为 HTTPS,示例存储库名称 'cryptremote':
git init
git remote add origin gcrypt::https://USER:APP_PASSWD@bitbucket.org/USER/cryptremote.git
git config remote.origin.gcrypt-participants "GPG_KEY_ID_OR_KEY_NAME"
git config remote.origin.gcrypt-signingkey "GPG_KEY_ID_OR_KEY_NAME"
# removes GPG password prompts but makes the name of the key owner public
git config remote.origin.gcrypt-publish-participants true
# in case of an existing encrypted repo
git clone gcrypt::https://USER:APP_PASSWD@bitbucket.org/USER/cryptremote.git
# in case of starting a new encrypted remote repo
git push --set-upstream origin master
修复 gcrypt 推送和拉取期间的 GPG 密码提示
man git-remote-gcrypt
gcrypt.publish-participants
By default, the gpg key ids of the participants are obscured by
encrypting using gpg -R. Setting this option to true disables
that security measure.
对有用的东西表示感谢。
但是,我不喜欢我必须使用 HTTPS 和应用程序密码,因为 Bitbucket 现在强制其用户将它们用于 HTTPS。
虽然我不确定为什么 rsync 不起作用,但问题似乎出在 Bitbucket 上,因为我在我的计算机和我的 Android.
之间完美地使用了 rsync
目标是将我的代码加密存储在 BitBucket 远程存储库中。有些东西应该处理加密和解密,所以我登陆了 gcrypt 或完整,git-remote-gcrypt。
我有一个配置了 SSH 密钥的 Bitbucket 帐户。
这是我试过的。
rsync
我从手册中复制了这些命令。
git remote remove cryptremote
git remote add cryptremote gcrypt::rsync://git@bitbucket.org/user/cryptremote.git
git config remote.cryptremote.gcrypt-participants "user"
git push cryptremote master
控制台:
gcrypt: Repository not found: rsync://git@bitbucket.org/user/cryptremote.git
gcrypt: Setting up new repository
protocol version mismatch -- is your shell clean?
(see the rsync man page for an explanation)
rsync error: protocol incompatibility (code 2) at compat.c(600) [sender=v3.2.3]
error: failed to push some refs to 'gcrypt::rsync://git@bitbucket.org/user/cryptremote.git'
freetalk@bitbucket.org
:我确认这永远不会起作用,因为 SSH URL 到 Git 远程存储库托管服务将始终使用“git
”用户(并依靠 SSH 密钥来验证和识别实际用户帐户)。
spwhitton/git-remote-gcrypt
commit 6233fde 确实提到:
Remove deprecated
gcrypt::ssh://
(use rsync instead)
所以 rsync
URI 似乎更受支持,如 commit 3b69f81
你的情况:
gcrypt::rsync://git@bitbucket.org/user/cryptremote.git
^^^^^ ^^^
对于任何“protocol version mismatch -- is your shell clean?
”错误消息,请尝试 put in your .bashrc
:
# for non-interactive sessions stop execution here -- https://serverfault.com/a/805532/67528
[[ $- != *i* ]] && return
但还要检查一个 possible rsync
version mismatch (for instance, using a Bitbucket pipeline 只是为了显示 rsync
版本)。
与 illustrated here 一样,如果 SSH 无法正常工作,gcrypt::https://user@bitbucket.org/user/test.git
HTTPS URL 可能会更好。
感谢评论,我让它可以通过 HTTPS 工作。
我为自己和你写了一个小教程。
使用 git-remote-gcrypt
加密远程 Git 存储库一般工作流程
- 生成 GPG 私钥和 public 密钥 (GnuPG Linux)
- 创建远程仓库
- 初始化一个本地仓库
- 配置远程和 gcrypt(下面的命令)
- 克隆或推送
使用 rsync 的 gcrypt 示例不适用于 Bitbucket
git remote add cryptremote gcrypt::rsync://git@bitbucket.org/USER/cryptremote.git
# gcrypt docs use :user but git usually uses /user format
# git remote add cryptremote gcrypt::rsync://git@bitbucket.org:USER/cryptremote.git
git config remote.cryptremote.gcrypt-participants "GPG_KEY_ID_OR_KEY_NAME"
git config remote.cryptremote.gcrypt-signingkey "GPG_KEY_ID_OR_KEY_NAME"
git push cryptremote master
gcrypt: Repository not found: rsync://git@bitbucket.org/user/cryptremote.git gcrypt: Setting up new repository protocol version mismatch -- is your shell clean? (see the rsync man page for an explanation) rsync error: protocol incompatibility (code 2) at compat.c(600) [sender=v3.2.3] error: failed to push some refs to 'gcrypt::rsync://git@bitbucket.org/user/cryptremote.git'
基于 HTTPS 的 gcrypt
来自手册页的模板,已修改为 HTTPS,示例存储库名称 'cryptremote':
git init
git remote add origin gcrypt::https://USER:APP_PASSWD@bitbucket.org/USER/cryptremote.git
git config remote.origin.gcrypt-participants "GPG_KEY_ID_OR_KEY_NAME"
git config remote.origin.gcrypt-signingkey "GPG_KEY_ID_OR_KEY_NAME"
# removes GPG password prompts but makes the name of the key owner public
git config remote.origin.gcrypt-publish-participants true
# in case of an existing encrypted repo
git clone gcrypt::https://USER:APP_PASSWD@bitbucket.org/USER/cryptremote.git
# in case of starting a new encrypted remote repo
git push --set-upstream origin master
修复 gcrypt 推送和拉取期间的 GPG 密码提示
man git-remote-gcrypt
gcrypt.publish-participants
By default, the gpg key ids of the participants are obscured by encrypting using gpg -R. Setting this option to true disables that security measure.
对有用的东西表示感谢。
但是,我不喜欢我必须使用 HTTPS 和应用程序密码,因为 Bitbucket 现在强制其用户将它们用于 HTTPS。
虽然我不确定为什么 rsync 不起作用,但问题似乎出在 Bitbucket 上,因为我在我的计算机和我的 Android.
之间完美地使用了 rsync