首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按需向ssh-agent添加SSH密钥

按需向ssh-agent添加SSH密钥
EN

Unix & Linux用户
提问于 2019-03-15 11:22:35
回答 1查看 1.1K关注 0票数 2

与调用ssh-add将所有密钥添加到ssh-agent不同,是否可以在ssh要求时立即自动添加这些键?同样,由桌面环境启动的代理做什么?

编辑:什么是不同的代理启动桌面环境(例如。(从gnome-keyring-daemon)从命令行启动的代理程序中“添加”这种行为?

在Mate会话(Linux )中,当ssh向代理添加它的第一个键时,就会出现一个新的进程,SSH_AUTH_SOCK似乎是指向这个进程,但是在"ssh“名称(".ssh”而不是"ssh")前面有一个点。此进程由"gnome-keyring-daemon“启动,请检查下面屏幕快照上的进程PID:

EN

回答 1

Unix & Linux用户

发布于 2019-03-15 13:03:41

ssh的最新版本(7.2,2016年初和更新版本)有一个选项AddKeysToAgent,它就是这样做的:

AddKeysToAgent指定是否应该自动将键添加到运行中的ssh-代理(1)。如果将此选项设置为“是”,并且从文件中加载了一个键,则该密钥及其密码将被添加到具有默认生存期的代理中,就像通过ssh-add(1)一样。如果将此选项设置为ask,那么在添加密钥之前,ssh(1)将需要使用SSH_ASKPASS程序进行确认(详见ssh-add(1) )。如果将此选项设置为确认,则必须确认密钥的每次使用,就好像-c选项指定为ssh-add(1)一样。如果此选项设置为“否”,则不会向代理添加任何键。参数必须是“是”、“确认”、“询问”或“否”(默认值)。

至于行为上的差异:ssh-agent协议遵循标准,这可以归结为以下几个方面:客户机(ssh,或ssh-add,或其他感兴趣的人)通过查看环境变量SSH_AUTH_SOCK知道该与谁交谈。该协议稍加简化,有以下操作:

  1. 密钥管理操作:添加、删除、列出可用密钥
  2. 消息操作:签名、加密等。

通常,您会在第一类中使用ssh-add。但是,正如所说的那样,新的sshs也会加入。当您询问按需加载密钥时:当您询问可用密钥列表时,代理可能会做一些花哨的事情--标准实现要求您事先添加所有密钥,但桌面环境实现可能在某些钱包存储中有由主密码保护的密钥,并在首次尝试使用任何密钥时询问密码。(或者您的意思是密钥在不同的终端窗口之间共享?)这只是让环境变量SSH_AUTH_SOCK进入所有终端的问题,这就是为什么在会话中启动代理是很好的,因此所有终端都继承了变量。)

票数 5
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/506481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档