Questions tagged «ssh-agent»

ssh-agent是OpenSSH软件中包含的SSH单一登录机制。使用此标记可查询有关如何配置和使用ssh-agent的问题。


3
配置SSH代理的默认超时
我ssh-add用来将SSH密钥添加到SSH代理中。默认情况下,它会无限期地添加它们。有一个命令行选项可以指定超时时间,但是有一个配置文件选项可以指定默认超时时间吗? 我想要的是能够在ssh-add没有任何命令行参数的情况下运行,并且将其默认设置为给定的超时时间(就像我已经调用一样ssh-add -t 1h)。
10 ssh  ssh-agent 

2
ssh-agent:不要转发整个密钥环的身份验证
我有两个ssh私钥: 一个访问我的个人机器, 一个在我工作时访问服务器。 我使用将这两个键添加到ssh-agent中ssh-add。 现在,当我这样做时,我ssh -A root@jobsrv只想转发我的工作密钥(我用来连接的密钥)的代理身份验证jobsrv。 我想要这样做是因为具有root访问权限的任何人都jobsrv可以使用我的代理对我的个人计算机进行身份验证。 有没有办法实现这种隔离?

4
gnome-keyring在哪里设置$ SSH_AUTH_SOCK?
我正在放弃gnome-keyring使用SSH代理的过程。 我所做的事情 在互联网上搜索了几个小时。 更改了内容并经常重新启动。 最后,只需rm-ed所有与SSH相关的自动启动内容。 最后一件事情神奇地起作用了,因为那里不再有代理的套接字: /run/user/[uid]/keyring/ssh 问题 剩下的问题是,尽管我获得美妙的上述结果,一些在gnome-keyring仍然坚持设置SSH_AUTH_SOCK到现在 不存在上述插座。就像僵尸一样,这些东西永不消亡。 题 什么是设置该变量的位置? 陷阱 我不是在问如何将变量重置为另一个值。 我不是在问如何在系统范围内或在Shell配置文件中设置该值。 我不是要一些初始化脚本的伏都教徒咒语来冻结,设置,重置,取消设置或替换任何东西。 我并不是在寻求有关如何卸载该设备的建议:我仍然需要它来作为我的密码,它似乎是Gnome中集成度最高,功能最完善的密码管理器。 我希望禁用该功能。

1
使用带有--noask选项的钥匙串保存SSH密钥密码
我想使用钥匙串来管理SSH密钥的密码提示,但是它应该1)仅在我实际使用密钥时才询问它,以及2)之后将其保存一段时间。目前,我有2个选项: $ eval `keychain --eval --agents ssh id_rsa` -在启动时总是会要求输入密码,但是它将保存。 $ eval `keychain --eval --noask --agents ssh id_rsa` -在启动时不会要求任何内容,但是每次我使用该密钥时都会不断要求输入密码。 有什么方法可以结合这些方法的优点?
10 ssh  ssh-agent 

1
如何使ssh-agent静音?
我.bashrc在mysuer家里的文件中有一个像这样的脚本: eval `ssh-agent` ssh-add /path/to/my/key 问题是当我与用户mysuer(su - myuser)登录时,我有以下输出: Agent pid 1234 Identity added: /path/to/my/key (/path/to/my/key) 我想避免这种情况,使此输出静音,但加载ssh-agent和ssh-add。 我该如何执行呢?
10 ssh  ssh-agent  output 

2
强制SSH在shell中(而不是在窗口中)询问我的私钥密码
引导后第一次使用SSH时,它会要求我提供私钥解锁密码(这是我期望的行为)。但这是在窗口而不是外壳中进行的(类似于gksudoVS sudo)。这令人沮丧(我必须使用鼠标单击窗口),其次有时会导致错误(我使用Guake终端,有时是全屏显示,在这种情况下,我无法专注于SSH窗口,因此我不得不重新启动X )。 所以,我的问题是:是否有一种方法可以强制SSH在命令行上要求我的私钥密码,而不是弹出一个窗口?

1
谁在启动我的ssh-agent,为什么它不能正确终止?
这是我很长一段时间以来一直遇到的问题,但是每次我尝试弄清某些东西时,我都会迷路,所以我想最好在这里问一个也许更有经验的人可以帮助我。 背景 我的Raspberry Pi正在运行Raspbian Jessie,我经常使用SSH登录并远程执行命令。在我的第一个SSH会话中,我注意到每次登录时都会在RPi上ssh-agent生成一个进程,但是在注册时却没有杀死该进程exit:多次登录和注销会导致生成一堆ssh-agent进程,只是让它们挂在那儿什么也不做。最近,我在各处闲逛并阅读手册页和答案,我了解了的目的ssh-agent,并且我还了解到注销通常应该将其杀死,因此我开始自问为什么不这样做。此外,我注意到发行source ~/.bashrc会导致产生另一个实例ssh-agent。我在相关手册页上阅读之所以SSH_AGENT_PID应该定义环境变量,是因为应该在该ssh-agent程序中启动该程序eval以执行其输出并定义此类变量,然后这些变量将由其他与SSH相关的命令使用,包括ssh-agent -k(杀死相对于当前会话的代理),所以我跑了echo $SSH_AGENT_PID和echo $SSH_AUTH_SOCK,但他们都是空的。我突然意识到:可能该进程在注销时不会被终止,因为它ssh-agent -k试图从未设置的环境变量中读取其PID。 问题 由于ssh-agent未在注销时被杀死,并且这肯定是由于未设置所需的环境变量而发生的,因此只能表示一件事:调用ssh-agent登录的任何人都可能无法以正确的方式进行操作(应该如此eval "$(ssh-agent -s)")。所以我想:那是什么问题?我将发现执行了哪个配置文件,服务或登录脚本以启动代理并手动对其进行修复!到底在哪里? 我尝试过的 由于我注意到ssh-agent每次调用都会产生一个source ~/.bashrc,因此这是我检查的第一个文件,但是那里甚至没有远程引用与SSH相关的任何文件。我一直在以下所有文件中搜索使用vi的字符串ssh,但未发现任何内容: ~/.bashrc ~/.profile /etc/bash.bashrc /etc/profile /etc/profile.d/ (every file in this folder) /etc/environment 还有其他文件可以参与source ~/.bashrc吗?我真的不知道 然后,我搜索了相关systemd服务,但仅找到ssh.service,即WantedBy=multi-user.target,因此未在登录时运行(而且很明显,因为这是SSH服务器守护程序)。 我还尝试将文件/home/pi夹中的每个文件都移到一个临时文件夹,然后注销并再次登录,但ssh-agent仍然生成。 最终,我还打开了我在会议厅中拍摄的最后一张照片:我find / -name 'ssh-agent'以root身份运行,仅打印/usr/bin/ssh-agent了一个可执行文件,因此我创建了一个伪造的可执行文件,该可执行文件基本上只记录了父命令: #! /bin/bash ps -o args= $PPID > /home/pi/LOG cat /proc/$PPID/cmdline >> /home/pi/LOG 我重命名了真实的,/usr/bin/ssh-agent并用设置了正确权限/用户/组的伪造替换了它,source ~/.bashrc再次运行,然后打印了LOG文件: …

1
ssh-agent缺少类似于sudo的不活动/空闲超时功能是否有技术原因?
ssh-agent -t在[1]上对现有功能进行了简短的讨论,早在2001年就有一篇关于debian-devel [2]的帖子,希望提供不活动超时功能。SE [3]上针对选美也有类似的讨论。 我想知道地球上的其他地方如何保护ssh密钥-我是否错过了一些明显的东西,而这对于我来说却是一个痛苦点,而且显然没有其他人吗?具体来说,我在考虑脚本化的ssh交互,例如与ansible的交互。今天看来,您的选择是: 例如,将代理中密钥的有效期设置为令人担忧的长时间。1h或您的脚本的最大运行时间可能是(我怀疑很多人都允许他们的sudo re-auth超时延长这么长的时间!)-但是seahorse/ gnome-keyring-daemon几乎不支持这么多[4] 长时间运行脚本,并每5/10/15分钟重新输入一次密码:现在您可以轻松地看到每天输入20次密码 破解您自己的自制解决方案以模仿此缺少的功能,也许与您的Shell的TMOUTShell var 结合使用(感谢freenode #openssh IRC上的人员的建议) 根本没有设置密钥生存期,即您的代理会永久加载您的密钥,或者直到您杀死/重新启动它为止 如果您对身份验证所使用的每种角色使用简短的ssh代理超时,强密码短语和不同的密钥文件,那么这一天会非常令人沮丧! 我已经尝试了gpgkey2ssh和智能卡,但这并不能真正解决这个特定问题:我仍然想要ssh-agent功能,并且我不想每隔5分钟重新进行身份验证只是为了防止我的私钥暴露我的计算机空闲时在内存中存储。 我做错了吗? [1] 配置SSH代理的默认超时 [2] https://lists.debian.org/debian-devel/2001/09/msg00851.html [3] /server/518312/putty-pageant-forget-keys-after-period-of-inactivity [4] https://bugs.launchpad.net/ubuntu/+source/gnome-keyring/+bug/129231

1
检测ssh-agent身份的剩余寿命
该ssh-add命令允许您指定要添加到的身份的生存期ssh-agent。例如,如果我输入 ssh-add -t 1h 该标识将在1小时后失效。然后,我可以使用列出代理当前代表的身份ssh-add -l。 有没有一种方法(除了在运行ssh-add命令时记录信息)来确定身份的剩余寿命?如果不是,是否有一些与安全性相关的原因,为什么不应该有一种方法来获取此信息?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.