语法:取消设置 ssh -o 配置值?

Mar*_*cka 6 ssh

在 my 中,/etc/ssh/ssh_config我将 的值设置PKC11Provider为我的 PKCS11 库的路径。

但是,由于智能卡并不总是存在,我想确保非交互式 ssh 会话(如由 cron 运行的会话)不使用 PKCS11 库,而是仅在我的硬盘驱动器上寻找密钥。

所以我需要像这样输入一个 ssh 命令:

$ ssh -o PKCS11Provider= server.com
Run Code Online (Sandbox Code Playgroud)

但是,这是无效的:

command-line line 0: Missing argument.
Run Code Online (Sandbox Code Playgroud)

如何在命令行上指定要取消设置配置变量?我搜索了联机帮助页和谷歌,但没有找到答案(可能只是谷歌不好)。

我尝试将 value 放在那里no,但是在放置任何其他废话时,ssh 只会抱怨找不到动态库。它可以工作,但是它会发出这个错误,我觉得这不是正确的方法。

谢谢你的想法。

Jak*_*uje 4

编辑 2020:这些天(使用 OpenSSH 8.1p1),有一个关键字none,它应该允许您取消设置之前为PKCS11Provider配置选项设置的值。

无法通过ssh内部配置读取的方式取消设置配置值。

你应该反过来想一下。在哪里设置这个值?你应该在 中执行此操作~/.ssh/config

如果您仅将智能卡用于特定主机,则应将此选项放入该Match host块中。

您在您的用户下运行 cron 脚本吗?您可以使用Match execblock 来检查您是否运行交互式会话或从 cron 运行。或者您甚至可以编写一些脚本来检查购物车是否存在(再次使用Match exec)。如果您使用不同的用户运行它,请给他不带此选项的配置文件(在他的主目录中)。

或者您可以简单地提供不同的ssh_configcron 脚本ssh(使用-F开关),在这种情况下您不会设置此选项。这种方式有很多可能性。如果您特别感兴趣,我可以添加更多详细信息。