非常类似于无法打开配置文件“/dev/fd/63”,错误:没有 wpa_supplicant 的文件或目录除了我以 root 身份运行这一事实之外。
bash-4.4# autossh -v -M 0 -4 -o StrictHostKeyChecking=no -F <(echo "$VA_SOCKS_PROXY_SSH_CONFIG") -i <(echo "$VA_SOCKS_PROXY_PRIVATE_KEY") socks -D "0.0.0.0:2001" -N
警告:身份文件 /dev/fd/62 无法访问:没有这样的文件或目录。
OpenSSH_7.9p1、OpenSSL 1.1.1a 2018 年 11 月 20 日
无法打开用户配置文件 /dev/fd/63:没有这样的文件或目录
输出在两个地方失败。如果我ssh-add <(echo "$VA_SOCKS_PROXY_PRIVATE_KEY")
这样做,效果很好。看起来管道可能首先被 autossh 读取,然后被 ssh 第二次读取(反之亦然),因此第二次就消失了。
UPDATE1:它似乎运行时ssh
会重现相同的错误,所以我上面的假设是无效的。
更新2:这个评论说:
它似乎
ssh
根本不支持这种操作模式,因为它很早就关闭了 FD 3 及更高版本main()
答案1
似乎ssh
在 main() 中尽早关闭了所有文件描述符,因此不支持进程替换。
/*
* Discard other fds that are hanging around. These can cause problem
* with backgrounded ssh processes started by ControlPersist.
*/
closefrom(STDERR_FILENO + 1);