我用java编写的git客户端遇到了一些困难.我正在使用jGit库通过git服务器上的ssh进行连接.问题是我不知道如何指定私钥的路径和密码.我在jGit文档中找不到有关我需要调用哪些函数的任何示例.从我读到的jGit库使用JSch使用ssh连接到服务器,JSch支持私钥和密码.有没有人有这方面的经验或有一些工作代码?
谢谢
我一直在使用gpg加密.有人建议我应该使用gpg2.当我去使用时gpg2,我什么也做不了; 它会抱怨需要访问私钥,但我似乎无法在没有gpg-agent运行的情况下使用私钥.
事实证明我故意禁用gpg-agent(通过使用chmod -x /usr/bin/gpg-agent); 这导致gpg2功能非常有限,并向stderr抱怨.
我禁用的原因gpg-agent是一系列事件.
首先,我将SSH连接到远程计算机,"代理"将打开一个弹出窗口,要求我解锁我的SSH密钥.我不喜欢这个,因为:
sudo使用密码缓存,我可以在其配置中禁用它); 每次将它们用于任何正在使用它们的程序时,我总是希望为我的加密密钥输入密码.它原来是GNOME的核心机构,我不能卸载不卸载GNOME代理.所以我只是禁用它chmod -x /usr/bin/gnome-keyring*.然后我发现SSH会回退到另一个代理,所以我也使用相同的方法禁用了它chmod -x /usr/bin/ssh-agent*
当我开始使用时gpg,我发现它有一个类似的代理,就像我要问的那个.我出于同样的原因立即禁用了它; 我希望软件总是问我密码才能使用私钥.我不希望以任何理由缓存密码.
所以gpg2看似要求 gpg-agent,我想问:
gpg2没有gpg-agent运行的情况下使用?我有一个关于GPG的问题,但我写了所有的过程,也许它会帮助某人.
我想:在GPG命令中抑制密码短语提示
我不想:使用-c选项(--symmetric).
我有2个系统myFileOnLinux.txt和my@Email.com.
我想从发送数据myPasswordPhrase到Windows.
我想加密数据Windows并解密Passphrase.
我在两者上安装了GPG并执行了以下步骤:
myFileOnLinux.txt 是我想要加密的Linux上的文件.
my@Email.com 对密钥的UID.
myPasswordPhrase 是密码短语.
Windows:Windows
Passphrase:myFileOnLinux.txt
my@Email.com
myPasswordPhrase
Windows
Windows
Passphrase
将公钥发送到myFileOnLinux.txt计算机.
导入公钥 my@Email.com
myPasswordPhrase
WindowsWindows
Passphrase
myFileOnLinux.txt
my@Email.commyPasswordPhrase
将加密文件发送到Windows.
解密文件.
Windows
在Windows弹出窗口中,它Passphrase再次问我
我怎么能避免呢?
谢谢
我正在尝试学习如何使用Java进行基于密码短语的加密.我在网上找到几个例子,但Stack Overflow上没有(还).这些例子对我来说有点解释,特别是关于算法选择.似乎有许多传递字符串来说明要使用什么算法,但很少有关于字符串来自何处及其含义的文档.并且似乎不同的算法可能需要KeySpec类的不同实现,所以我不确定哪些算法可以使用我正在查看的PBEKeySpec类.此外,这些示例似乎都有点过时,许多要求您获得一个旧的加密包,这个加密包过去不属于JDK,甚至是第三方实现.
有人可以直接介绍我需要做什么来实现加密(字符串数据,字符串密码)和解密(字节[]数据,字符串密码)?
开始研究一个新项目,我需要为私人和公共项目组合运行"迦太基更新",其中一些项目有子模块.无论我做什么,迦太基都没有说明原因.我该怎么做才能确定挂起,然后如何解决这些问题呢?
我在 Windows 10 Pro 机器上尝试执行 git pull,而不必每次都输入我的 SSH 密码。已生成带有密码的密钥对,并且公钥已成功添加到我的 GitLab 帐户。
在“服务”GUI 中,我可以看到“OpenSSH 身份验证代理”正在运行,如果在 PowerShell 中,我会Get-Service ssh-agent看到以下内容,确认相同的信息:
Status Name DisplayName
------ ---- -----------
Running ssh-agent OpenSSH Authentication Agent
Run Code Online (Sandbox Code Playgroud)
当我这样做时,ssh -T git@gitlab.com我收到“欢迎来到 Gitlab”消息,表明ssh 连接成功,无需输入密码。
我正在运行 ssh 代理并添加身份(通过运行svn add、输入我的密码并获取成功消息)。在同一终端中运行“ssh -T git@gitlab.com”会成功,无需密码。
在终端中,我可以运行 git 命令(例如git push或git pull),每次都会提示我输入密码,并且操作成功。
在 Visual Studio Code 中,当我单击 GUI 按钮与源同步时,出现错误git@gitlab.com: Permission denied (publickey,keyboard-interactive).

这可能是因为它没有提示输入密码,而需要输入密码。当我单击“打开 Git 日志”或“显示命令输出”时,我可以看到尝试的命令。在 VSCode 的终端或另一个终端类型应用程序中运行完全相同的命令,系统会提示我输入密码,输入正确的密码后,操作成功。
git Remote origin url 是此处描述的格式的 SSH URL ;它不是 …
我试图在emacs中使用epa模式和组织模式,如本文所述.
我使用屏幕会话和ssh连接到计算机.因此,我需要将/ usr/bin/pinentry更改为指向/ usr/bin/pinentry-curses为/ usr/bin/pinentry-gtk-2.
我有
pinentry-program /usr/bin/pinentry-curses
Run Code Online (Sandbox Code Playgroud)
作为我的.gnupg/gpg.conf中的最后一行.当我尝试保存文件时,我会看到这个菜单:
Select recipients for encryption.
If no one is selected, symmetric encryption will be performed.
- `m' to mark a key on the line
- `u' to unmark a key on the line
[Cancel][OK]
Run Code Online (Sandbox Code Playgroud)
我选择'确定'但只能获得
Opening output file: Encrypt failed, Exit
Run Code Online (Sandbox Code Playgroud)
我没有提示我的密码短语,也没有给出其他输出.它不会提示输入密码.它甚至没有将我的gpg'用户'列为foo@bar.com.
但是,当.gnupg/gpg.conf文件中没有该行时,我会在"选择加密收件人"对话框中看到我的gpg"用户".但是,cpu与消息说明:
Encrypting /home/user/test.gpg...
Run Code Online (Sandbox Code Playgroud)
(我假设它正在尝试生成gtk窗口并在圆圈中运行)
我有点困惑为什么我需要将/ usr/bin/pinentry链接到/ usr/bin/pinentry-curses并在我的gpg.conf文件中添加该行.
在将/ usr/bin/pinentry链接到/ usr/bin/pinentry-gtk-2之前,如果我在本地计算机上,则会在列出我的gpg用户的情况下获得"选择收件人加密"提示.我会得到一个对话框来输入我的密码,这一切都奏效了.我明白了
Encrypting /home/user/test.gpg...
Run Code Online (Sandbox Code Playgroud)
这一切都会成功.
我在今天早上最新的Arch系统上运行GNU Emacs 24.2.1.
我很好奇我做错了什么.我已经在arch wiki上检查了关于pinentry和gpg的文章,他们没有帮助解决问题.提前致谢.
更新:26-10-2012今天早上更新包装cryptsetup似乎已经影响了行为.当我打开.gpg文件时,我现在得到一个"请输入密码短语"提示,但它似乎永远不会过去.输入密码后,提示永远不会消失.
我正在使用Egit和Eclipse来使用git并访问github.一切都工作正常,但有一件事,我希望省略id_rsa每次我将提交推送到github时键入密钥密码.
我每次重新启动Eclipse并尝试推送时都要求输入密码.

如何让eclipse记住密码短语,以便我不必手动输入?
谢谢
如何在bash脚本中使用git fetch / pull提供密码短语。我真的需要在bash脚本中执行此操作,而无需使用ssh-add或类似的内容。可能吗?
我需要自动生成自签名 SSL 证书以用于项目的测试目的。我正在使用以下 OpenSSL 命令生成证书和密钥:
> openssl req -x509 -newkey rsa:2048 -keyout myserver.key -out myserver.crt -subj "/C=US/ST=California/L=San Diego/O=Development/OU=Dev/CN=example.com"
Run Code Online (Sandbox Code Playgroud)
在生成过程中,系统会提示您创建 PEM 密码:
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
Run Code Online (Sandbox Code Playgroud)
我怎样才能自动化这个?我已经尝试过这样的-passin论点:
openssl ...... -passin pass:foobar .....
Run Code Online (Sandbox Code Playgroud)
还
openssl ...... -passin file:secretfile.txt .....
Run Code Online (Sandbox Code Playgroud)
但在这两种情况下,它仍然要求创建一个PEM pass phrase. 从我读到的我认为这passin只是向密钥文件添加密码......
是否有可能以某种方式自动化?