gue*_*tli 4 ssh batch-processing
如何通过命令行选项告诉ssh不使用SSH-Agent?
ssh -a做一些不同的事情。它不转发代理,而是使用它。
我阅读了手册页,但找不到解决方案。
取消设置SSH_AUTH_SOCK会起作用,但是在我的上下文中,命令行选项会更好。
Mic*_*urr 20
我知道这是一个老问题,但正确的答案是“如何使用命令行选项告诉 ssh 不使用 SSH 代理?” 尚未给出:
-o IdentityAgent=none选项来自https://man7.org/linux/man-pages/man5/ssh_config.5.html(添加了重点):
身份代理
指定用于与身份验证代理通信的 UNIX 域套接字。
此选项覆盖 SSH_AUTH_SOCK 环境变量,可用于选择特定代理。将套接字名称设置为 none 将禁用身份验证代理。...
您可以强制ssh使用SSH密钥以外的其他任何方式(例如密码)进行身份验证
ssh -o PubkeyAuthentication=no ...
Run Code Online (Sandbox Code Playgroud)
这种方式当然会使代理无效。如果要使用密钥,还可以显式指定它,并且ssh仅使用该密钥,而不使用代理中的所有密钥:
ssh -i path/to/id_rsa -o IdentitiesOnly=yes ...
Run Code Online (Sandbox Code Playgroud)
你提到过SSH_AUTH_SOCK。您可以ssh像这样在命令上下文中取消设置它:
SSH_AUTH_SOCK= ssh ...
Run Code Online (Sandbox Code Playgroud)
注意后面的空格SSH_AUTH_SOCK=。这样,您可以确保在不修改您的工作环境的同时不使用该代理。