如果在命令行git中我在PowerShell ISE中签署提交(作为管理员或非管理员),我会得到以下错误:
C:UsersMyNamemyrepo> git commit -S -m "在PowerShell ISE中测试签名提交"
git : gpg: WARNING: unsafe permissions on homedir 'C:UsersJerryAppDataRoaminggnupg' At line:1 char:1 + git commit -S -m "Testing signed commit in PowerShell ISE." + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (gpg: WARNING: u...Roaminggnupg':String) [], RemoteException + FullyQualifiedErrorId : NativeCommandError gpg : cannot open tty no tty': No such file or directory error: gpg failed to sign the data fatal: failed to write commit object
签名提交工作在命令提示符和Powershell控制台(作为管理员或不),所以我猜GPG是有问题的ISE?这个错误确实说"homedir"(gnupg所在的地方)的权限是不安全的,但我不知道如何使该目录的Windows权限安全到GPG的要求(如果这甚至是问题的话)。
任何帮助都是非常感激的,谢谢!
GnuPG不喜欢除了您自己的用户帐户之外的任何人能够读取和写入GnuPG主目录(在您的情况下是C:UsersJerryAppDataRoaminggnupg
)的内容,特别是对于包含的私钥文件。
删除除您自己以外的任何其他用户帐户的特权,这可以通过打开属性并删除权限来实现。
另一种选择是将git设置为使用--no-permission-warning
标志,但这只是一个解决方法,并不能真正解决问题。