我通过自制程序安装了 gpg。
我有一个 ~/gpg-agent.conf 文件如下:
allow-preset-passphrase
default-cache-ttl 1209600
max-cache-ttl 1209600
max-cache-ttl-ssh 1209600
Run Code Online (Sandbox Code Playgroud)
我的 .bashrc (实际上:)~/.bash_it/custom/gpg-agent.bash有
export GPG_TTY=$(tty)
[ -f ~/.gpg-agent-info ] && source ~/.gpg-agent-info
if [ -S "${GPG_AGENT_INFO%%:*}" ]; then
export GPG_AGENT_INFO
else
eval $( /usr/local/bin/gpg-agent --daemon --write-env-file ~/.gpg-agent-info )
fi
Run Code Online (Sandbox Code Playgroud)
我的假设是这样可以使我每 2 周只被要求输入一次密码,但仍然每 5 分钟被要求输入一次。gpg-agent --gpgconf-list显示正在使用的实际值?
$ gpg-agent --gpgconf-list
gpgconf-gpg-agent.conf:16:"/Users/notbrain/.gnupg/gpg-agent.conf
verbose:8:
quiet:8:
debug-level:24:"none:
log-file:8:
default-cache-ttl:24:600:
default-cache-ttl-ssh:24:1800:
max-cache-ttl:24:7200:
max-cache-ttl-ssh:24:7200:
enforce-passphrase-constraints:8:
min-passphrase-len:24:8:
min-passphrase-nonalpha:24:1:
check-passphrase-pattern:24:
max-passphrase-days:24:0:
enable-passphrase-history:8:
no-grab:8:
ignore-cache-for-signing:8:
no-allow-mark-trusted:8:
no-allow-external-cache:8:
disable-scdaemon:8:
enable-ssh-support:0:
Run Code Online (Sandbox Code Playgroud)
为什么我的 gpg-agent.conf 文件没有被遵守?我缺少什么?通过自制软件安装: …
gpg-agent 具有选项“--enable-ssh-support”和“--enable-putty-support”,允许它使用它作为众所周知的 ssh-agent 的替代品。
我一直在努力弄清楚如何在 Windows 和 git-bash 中实现这项工作。(请不要建议我使用 putty,因为我有很多脚本和其他程序需要在我的 windows pc 机器上使用 git bash 和 openssh,包括 PHPStorm 等)
我的第一次尝试是enable-ssh-support在C:\Users\[user]\AppData\Roaming\gnupg\gpg-agent.conf文件中有一行,
并export SSH_AUTH_SOCK=/c/users/[user]/AppData/Roaming/gnupg/S.gpg-agent.ssh在/c/users/[user]/.bash_profile文件中行。(我还创建了一个SSH_AUTH_SOCK带有值的 Windows 环境变量C:\Users\[username]\AppData\Roaming\gnupg\S.gpg-agent.ssh)
我在密钥环中有我的 GPG 秘密密钥,带有启用身份验证和加密的子密钥。
并且我在C:\Users\[user]\AppData\Roaming\gnupg\sshcontrol文件中添加了启用身份验证的子密钥的 keygrip 。
由于 GnuPG 2.2.4 带有--export-ssh-key选项,所以我不需要monkeysphere将 GPG 密钥转换为 OpenSSH 格式。所以我导出了我的公钥,并将它放在具有正确权限的远程 Linux 机器中的 authorized_keys 文件中(使用腻子在另一台计算机上测试)。
然后我执行:
gpg-connect-agent killagent /bye和gpg-connect-agent /byePowerShell中(并开始在后台运行的GPG代理并创建了S.gpg-agent.sshSOCK文件)。
然后尝试以常规方式 ssh 进入服务器。
它给了我一个错误。
然后我尝试启用腻子支持(enable-putty-support行中gpg-agent.conf允许您启用腻子支持。
您还需要在 …
我有一个用 Kleopatra 生成的密钥对(来自 Gpg4win 3.0 套件)。我已将公钥转换为 RSA ssh 密钥,并将其添加到 Linux 机器中的 authorized_keys 文件中。
在 Windows 机器上,我将gpg-agent.conf文件配置为:
enable-putty-support
debug-level guru
log-file C:/Users/myusername/log.txt
disable-scdaemon
Run Code Online (Sandbox Code Playgroud)
但是,当我打开 PuTTY 并尝试连接到服务器时,出现错误:
"Disconnected: No supported authentication methods available (server sent: publickey)"
Run Code Online (Sandbox Code Playgroud)
问题是:如何使用 Windows 机器上的 Putty 使用 gpg 密钥对通过 SSH 连接到 Linux 机器?我知道 gpg-agent 模拟Pageant代理,因此它应该使用内存上的 gpg 私钥将加密的字符串提供给 PuTTY。这是正确的吗?还是我误解了这里的一切?
假设我大部分时间只使用一个加密密钥。
如何设置默认加密密钥以避免在加密命令中提及它
换句话说,我想要这个命令:
gpg -e
Run Code Online (Sandbox Code Playgroud)
等同于接收者的命令
gpg -e -r reciever@mail.edu
Run Code Online (Sandbox Code Playgroud) 我正在使用 gpg 加密我的电子邮件密码,并将其传递给 msmtp 以发送电子邮件。
我最初运行是gpg --full-gen-key为了生成一对密钥。在此过程中,它要求我输入密码。该过程已成功完成。
其次,我通过运行加密了我的电子邮件密码gpg --encrypt --output ~/.msmtp/msmtp-myaccount-pass.gpg --recipient my@gpg-email -
我配置了 msmtp 来使用passwordeval并尝试发送测试电子邮件。发送时,gpg 要求我输入密码。至此,邮件已成功发送。
现在,我想从这个无头树莓派服务器向自己发送系统报告电子邮件,为了做到这一点,我正在构建一个将由cron. 鉴于服务器将无人值守,因此需要缓存密码,我知道最安全的方法是使用gpg-agent.
为了使用gpg-agent,我需要编辑~/.gnupg/gpg.conf和添加use-agent。我还需要编辑gpg-agent.conf以自定义缓存期限。这就是我已经走到了死胡同的地方。
我找不到该文件gpg-conf,也找不到该文件gpg-agent.conf。
当我列出.gnupg目录时,我得到:
drwx------ 2 pi pi 4096 Apr 5 22:11 crls.d
drwx------ 2 pi pi 4096 Apr 5 22:15 openpgp-revocs.d
drwx------ 2 pi pi 4096 Apr 5 22:15 private-keys-v1.d
-rw-r--r-- 1 pi pi 2475 Apr 5 …Run Code Online (Sandbox Code Playgroud) 我正在构建一个脚本,用于msmtp通过电子邮件向自己发送定期系统报告。我曾经gpg用来加密我的电子邮件密码并password-eval在msmtp.conf.
我成功发送了一封测试电子邮件,但在此过程中,gpg要求我提供用于创建密钥的密码gpg --full-generate-key。
鉴于该脚本将在无人值守的情况下运行,我需要使用 缓存密码gpg-preset-passphrase。但是,当我/usr/lib/gnupg2/gpg-preset-passphrase --preset <keygrip>使用 运行 where keygrip is returned时gpg --list-keys --with-keygrip,我收到错误消息:gpg-preset-passphrase: caching passphrase failed: Not supported。
作为参考,我gpg 2.2.12在运行 Raspbian Buster 的 Raspberry Pi 2 Model B 上使用。
请协助。