是否有一个 SSH 选项(类似于-o ConnectTimeout=$seconds)来限制它在password:提示时等待的时间?
请注意,我确实将密钥对用于无密码 ssh,但我仍然password:每周看到几次提示,因为我在后台窗口中运行了 bash 函数,每当它们断开时就会重新连接我的 SSH 隧道(当我在 WiFi 网络之间徘徊并关闭MacBook 盖子随机)。因此,有时 SSH 协商会进入“密码:”状态,然后它会一直停留在那里,直到我手动干预^C或killall ssh...
dtunnel-home () {
while true ; do
title "XXX-TTT-..."
wait-for-host.sh "$g" ## sleep until ping-able.
time (
set -x
ssh -o ConnectTimeout=10 \
-Y -L 5920:$t:5900 -L ... \
$g_user@$g
) ; date "+%Y-%m-%d_%H-%M-%S"
done
}
Run Code Online (Sandbox Code Playgroud)
对于 Linux,您可能可以选择timeout使用任何常规 RPM 中的“coreutils”提供的命令来解决问题。
如果超时则返回代码124
cinacio@jdivm04:~> time timeout 10s ssh cinacio@vulca_5 ; echo $?
cinacio@vulca_5's password:
real 0m10.002s
user 0m0.006s
sys 0m0.002s
124
Run Code Online (Sandbox Code Playgroud)
我在这个问题上发现了这一点:/sf/ask/1105008271/
小智 2
我最近遇到了类似的问题(在后台运行的 cygwin ssh shell 应该自动重新连接,有时会出现密码提示)。
\n\n我确实在ssh_config手册页中找到了解决方案:
\n\nBatchMode=yes\nRun Code Online (Sandbox Code Playgroud)\n\n或者作为 ssh shell 的参数:
\n\n-o BatchMode=yes\nRun Code Online (Sandbox Code Playgroud)\n\n根据手册页,它禁用客户端的密码提示:
\n\n\n\n如果设置为 \xe2\x80\x9cyes\xe2\x80\x9d,将禁用密码短语/密码查询。
\n