openssh:让ssh根据需要向代理添加密钥


25

当我ssh进入服务器并且密钥没有加载到代理中时,我必须中止,然后运行ssh-add将密钥添加到代理中。但是,我希望ssh命令自动添加密钥。这可能吗?


您是否为所有目标主机拥有一个密钥,或者您具有具有不同密码的不同密钥?您是从Windows使用腻子,还是在Linux上使用基于X的窗口系统,还是在Mac中?
Otheus

我只使用一个键和openssh。ssh已经找出了正确的密钥并要求我输入密码,但是输入密码后,密钥将不会保存到代理中。在所有POSIX系统和cygwin上,此行为都是相同的。
enigmaticPhysicist


不,那不一样。我想在每次代理停止时输入密钥密码。我只想ssh根据需要直接将密钥添加到代理,而不必先使用ssh-add。
enigmaticPhysicist 2016年

Answers:


35

AddKeysToAgent选项可以满足我的需求。我可以-o AddKeysToAgent=yes在命令行中指定,也可以在自己的命令行中添加AddKeysToAgent yes一行.ssh/config。无论哪种。

看来这是opensh的最新版本,出现在2016年2月28日发布的7.2版中!

http://www.openssh.com/txt/release-7.2

谢谢,OpenBSD!我将使用这一个不少


.ssh / config:第3行:错误的配置选项:AddKeysToAgent。有什么想法吗?Unix服务器
Trainoasis,

检查您的openssh版本。$ ssh -V。它必须大于或等于7.2。
enigmaticPhysicist

的确如此,谢谢。重新登录后仍要求输入密码。例如,如果您始终需要输入pass,如何通过脚本自动进行git pull?而且我认为没有密码的id_rsa不是一个好主意……
trainoasis,

您是在ssh登录之间还是在本地登录之间?该密码应该在本地登录之间删除。
enigmaticPhysicist

每当我在本地运行脚本时,都应该在此处ssh并运行git pull等,但是当然不能,因为它需要GIT命令的密码(ssh可以工作,因为Passchain在钥匙串中,但是那里的命令当然要求通过)
trainoasis
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.