我正在使用 Debian 或 Windows 以及 Putty 通过 SSH 连接到远程 Debian 计算机。远程计算机 (Debian) 的行为与我目前所知的其他 SSH 服务器不同。
每当我在 SSH 控制台中运行失败的命令时,连接就会关闭并且 SSH 客户端会退出。
一个例子:
- 我登录到远程机器。
- 我执行 cd /not-existing-directory。
- SSH 客户端报告服务器已关闭连接。
造成这种行为的原因可能是什么?我可以采取什么措施?
答案1
如果您的远程 shell 是 bash(或类似 Bourne),您可能会errexit
打开该选项。如果“简单”命令(例如cd
)返回错误,该选项指示 shell 立即退出。
登录后,通过运行以下命令进行确认:
echo "$-" | grep e
如果打开该选项,您将看到一行包含e
.如果没有,则不会返回任何文本。
或者,运行:
set -o|grep errexit
如果该选项打开,您将看到:
errexit on
如果没有,您会看到:
errexit off
要关闭该选项,请运行:
set +o errexit
或者
set +e
有关 的更多信息errexit
,请参阅Shell 命令语言 - 设置