新版本svn使用gpg-agent存储密码

问题

自从开始使用debian11,应该是subversion版本的升级,导致不可以存储明文的密码,导致每次都要输入密码,很恼人。

Debian版本

➜  .gnupg lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 11 (bullseye)
Release:        11
Codename:       bullseye
➜  .gnupg

Debian11的svn版本如下

➜ .gnupg svn --version
svn, version 1.14.1 (r1886195)
compiled Apr 5 2022, 23:23:59 on x86_64-pc-linux-gnuCopyright (C) 2021 The Apache Software Foundation.
This software consists of contributions made by many people;
see the NOTICE file for more information.
Subversion is open source software, see http://subversion.apache.org/The following repository access (RA) modules are available:* ra_svn : Module for accessing a repository using the svn network protocol.
- with Cyrus SASL authentication
- handles 'svn' scheme
* ra_local : Module for accessing a repository on local disk.
- handles 'file' scheme
* ra_serf : Module for accessing a repository via WebDAV protocol using serf.
- using serf 1.3.9 (compiled with 1.3.9)
- handles 'http' scheme
- handles 'https' schemeThe following authentication credential caches are available:* Gnome Keyring
* GPG-Agent
* KWallet (KDE)➜ .gnupg

svn config

svn支持对每个用户使用不同的配置,于是相应的配置在如下目录:

$HOME/.subversion

~/.subversion/config
[auth]
### Set password stores used by Subversion. They should be
### delimited by spaces or commas. The order of values determines
### the order in which password stores are used.
### Valid password stores:
###   gnome-keyring        (Unix-like systems)
###   kwallet              (Unix-like systems)
###   gpg-agent            (Unix-like systems)
###   keychain             (Mac OS X)
###   windows-cryptoapi    (Windows)
# password-stores = gpg-agent,gnome-keyring,kwallet
### To disable all password stores, use an empty list:
# password-stores =

gpg-agent

新版本的svn默认支持gpg-agent,那么问题演变成配置这个工具。

添加下边两个环境变量到 ~/.zshrc 或者 ~/.bashrc,依据使用的shell类型

export GPG_TTY=$(tty)
export GPG_AGENT_INFO=`gpgconf --list-dirs agent-socket | tr -d '\n' && echo -n ::`

svn会缓冲auth的东西到~/.subversion/auth,为了使用gpg-agent,将老的东西删除
rm -rf ~/.subversion/auth
然后是当前的配置生效
source ~/.zshrc

当第一次登录svn需要输入密码,之后密码会cache住直到失效,可以更改其配置。

gpg-agent.conf

gpg-agent本身有配置,可以配置密码失效时间这个文件在
~/.gnupg/gpg-agent.conf

  • default-cache-ttl默认密码失效时间是600s,每次重新访问svn,就会将计时器重置。
    意味着如果600s之内有svn访问记录,那么就不用再次输入密码,如果超过600s没有使用svn,就需要重新输入密码
  • max-cache-ttl默认最大有效时间是7200s,不管上边的是不是在600s之内重新使用过svn,到两个小时之后都需要重新输入密码。

下边可以重新设置参数,当然还有其他参数,设置完成之后要重新启动gpg-agent。
gpg-connect-agent reloadagent /bye

# ╔═══════════════════════════════════════════════════════════════════════════╗
# ║ gpg-agent configuration (~/.gnupg/gpg-agent.conf)                         ║
# ║                                                                           ║
# ║ Note:                                                                     ║
# ║ After changing the configuration, reload the agent:                       ║
# ║   $ gpg-connect-agent reloadagent /bye                                    ║
# ╚═══════════════════════════════════════════════════════════════════════════╝# Time a cache entry is valid (in seconds) default: 600
# Each time a cache entry is accessed, the entry's timer is reset
default-cache-ttl 172800# Set the maximum time a cache entry is valid to n seconds.
# After this time a cache entry will be expired even if it has been accessed recently.
# The default is 2 hours (7200 seconds).
max-cache-ttl 604800

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/184989.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java Swing管理系统万能模板 课程设计素材

JavaSwing管理系统万能模板 视频教程: 【课程设计】2小时学会JavaSwing课程设计-万能模板-图书管理系统-[你的课程我设计] 万能模板是用Java Swing开发的,包含管理系统常用的多角色登录、数据查询、添加、修改、删除。常用的管理系统都可以使用万能模板…

MySQL与其他数据库产品的比较,优势在哪里?

作为数据库管理领域的博主作家,我深知数据库在软件开发和数据管理中的重要性。在当今众多的数据库产品中,MySQL作为一种流行的开源关系型数据库管理系统,具有许多优势和特点。下面,我将通过对与其他数据库产品的比较以及MySQL的优…

原来字节跳动这么容易就能进····

“字节是大企业,是不是很难进去啊?” “在字节做软件测试,能得到很好的发展吗? 一进去就有12.5K,其实也没有想的那么难” 直到现在,心情都还是无比激动! 本人211非科班,之前在字节…

Redis 如何批量删除指定前缀的Key

批量删除指定前缀的Key有两中方法,一种是借助 redis-cli,另一种是通过 SCAN 命令来遍历所有匹配前缀的 key,并使用 DEL 命令逐个删除它们。 redis-cli 使用 Redis 自带的 redis-cli 命令行工具,你可以通过以下方式批量删除指定前…

CHEM 14 not know

Goals of this lab: • Create and use a calibration curve for the absorbance/concentration relationship for crystal violet • Evaluate absorbance versus time measurements to determine the order of a reaction • Analyze graphs of data to determine best linea…

TiDB专题---1、TiDB简介和特性

什么是TiDB TiDB 是一个分布式 NewSQL 数据库,它支持水平弹性扩展、ACID 事务、标准 SQL、MySQL 语法和 MySQL 协议,具有数据强一致的高可用特性,是一个不仅适合 OLTP 场景还适合 OLAP 场景的混合数据库。 TiDB 是 PingCAP 公司自主设计、研发…

一些sql记录

1.日期加减/只保留数字 select * from HDDA_J207_WS_3_FILE a inner join( select id, (ADD_MONTHS(formatrq, formatbmqx1))as gqrq, formatrq, formatbmqx1 from ( select id, (case when formatbmqx like %年% then REGEXP_REPLACE(formatbmqx, [^0-9], )* 12 else REGEXP_…

土壤养分分析仪:精准农业,从“土”开始

在农业生产中,土壤的质量是决定农作物产量和品质的关键因素。然而,传统的土壤检测方法耗时费力,且结果往往不够准确。随着科技的发展,土壤养分分析仪为现代农业带来了新的可能。 土壤养分分析仪是一种专门用于测量土壤中各种养分含…

C++和Python混合编程在数据采集程序中的应用

目录 一、引言 二、C和Python的特性及其在数据采集程序中的应用 1、C的特性及其在数据采集程序中的应用 2、Python的特性及其在数据采集程序中的应用 三、C和Python混合编程在数据采集程序中的实现方法 四、混合编程的优缺点以及未来发展趋势 五、代码示例 六、结论 一…

c语言通过前序遍历构建二叉树

前言: 在链式二叉树中,我们一般都是通过一个建立好的二叉树从而算出他的前序遍历,那么如何通过一个前序遍历来创建一个二叉树呢,本文将详细解读前序遍历每一个步骤是如何创建二叉树的。 1、分析前序遍历,构建出二叉树…

智慧垃圾分拣站:科技改变城市环境,创造更美好的未来

随着城市化进程的不断加快,垃圾处理问题日益凸显。为了更好地解决垃圾分类问题,越来越多的城市开始推广智慧垃圾分拣站,利用创新科技实现高效垃圾分类处理。 山海鲸使用三维建模技术,建立了一个智慧垃圾分拣站数字孪生模型&#x…

外包干了5个月,技术退步明显.......

先说一下自己的情况,大专生,18年通过校招进入武汉某软件公司,干了接近4年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落! 而我已经在一个企业干了四年的功能测…

pip安装、更新、卸载

目录 一、安装pip1. ensurepip2. get-pip.py2.1 下载get-pip.py2.2 pip安装2.3 检查pip版本 二、更新pip三、卸载pip 参考https://pip.pypa.io/en/stable/installation/ 一、安装pip 1. ensurepip python -m ensurepip --upgrade2. get-pip.py 2.1 下载get-pip.py 终端执行…

【算法题解】LeetCode169.多数元素——摩尔投票算法

169. 多数元素 题干 给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 1: 输入: nums [3,2,3] 输…

每天一点python——day81

#每天一点Python——81 #递归函数: 递归函数: 一个函数在该函数体内调用了该函数本身,这个函数称为递归函数 【释:我自己调用自己的函数】 递归函数的组成部分: 递归调用与递归终止条件。 【一定有一个跳出循环的终止条…

解决WPS拖动整行的操作

如上图,想要把第4行的整行内容,平移到第1行。 1.选中第4行的整行 2.鼠标出现如图的样子时,按住鼠标左键,上移到第1行位置后,放开左键即可。

程序员养生与延寿:关注健康,享受编码之旅

随着信息技术的迅猛发展,程序员的工作变得越来越重要。然而,长时间坐在电脑前,程序员们不可避免地面临着一些健康问题。他们的头发越来越少,眼镜度数越来越高,肚子上的赘肉也越来越多。为了更好地保持健康,…

计算机网络:应用层(上篇)

文章目录 前言一、应用层协议原理1.网络应用的体系结构2.进程通信 二、Web与HTTP1.HTTP概况2.HTTP连接3.HTTP请求报文4.用户-服务器状态:cookies5.Web缓存(代理服务器) 三、FTP:文件传输协议1.FTP:控制连接与数据连接分…

watch监听中重复触发如何解决?

在实际开发工程中通过获取后端数据监听判断数组中长度是否大于0从而调用其他的方法,但是如果data域中的数据出现变化的话,就会导致监听中的方法重复调用,导致一些不必要的bug,例如: 原理: watch监听的数据…

element-plus 上传组件 el-upload 直传第一次取不到数据

取不到数据是官方("element-plus": "^2.3.4") beforeData在beforeUploadPromise 之前导致异步设置:data 不生效文件传不上去的原因,改为http-request去处理就可以了。挺奇怪,之前用("element-plus": "^2.2.17")…