(root) 警告:身份文件 /dev/fd/62 无法访问:没有这样的文件或目录

(root) 警告:身份文件 /dev/fd/62 无法访问:没有这样的文件或目录

非常类似于无法打开配置文件“/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);

来源

相关内容