“-L';附近的zsh ssh add-L解析错误;

“-L';附近的zsh ssh add-L解析错误;,ssh,zsh,Ssh,Zsh,我想跑 ssh添加-L (或任何其他虚线选项),并且zsh在`-L'附近返回zsh:parse error。这是我第一次看到zsh这样做,它没有使用任何其他命令 有什么想法吗?首先要知道的是ssh add是别名还是shell函数,而不是二进制可执行文件/usr/bin/ssh add 其次,尝试在没有自定义ZSH配置的ZSH会话中运行相同的命令。要获得干净的环境,请运行 env -i TERM=$TERM LC_ALL=$LC_ALL LANG=$LANG zsh -f 然后再次尝试ssh a

我想跑 ssh添加-L (或任何其他虚线选项),并且zsh在`-L'附近返回zsh:parse error。这是我第一次看到zsh这样做,它没有使用任何其他命令


有什么想法吗?

首先要知道的是
ssh add
是别名还是shell函数,而不是二进制可执行文件
/usr/bin/ssh add

其次,尝试在没有自定义ZSH配置的ZSH会话中运行相同的命令。要获得干净的环境,请运行

env -i TERM=$TERM LC_ALL=$LC_ALL LANG=$LANG zsh -f
然后再次尝试
ssh add-L
,让我们知道您看到了什么

此外,请发布以下内容的输出:

uname -a
zsh --version

好的,谢谢。我是个白痴。我在我的.zshrc:alias ssh add='ssh-add |{eval
ssh-agent
&&ssh-add}'中添加了这一行,因为我厌倦了在ssh-agent不在这里时创建它。但它使我的ssh-add无法接受命令行选项。我得想出更聪明的办法\ssh add-L工作得很好。如果您在OSX或Ubuntu上本地运行代理,只需让系统自己的密钥链为您启动代理即可。您只需导入每个密钥一次。然后在
~/.ssh/config
中为每个远程主机配置要使用的密钥(主机名可以使用通配符)。最后,要使ssh代理在远程主机上可用,请向您信任的主机添加选项
ForwardAgent yes