apt-get install在非交互式 SSH 会话中运行时,该会话永远不会关闭。例子:
ssh user@target "sudo apt-get -y install my_package"
Run Code Online (Sandbox Code Playgroud)
在my_package没有得到正确安装,但SSH会话刚悬开放。
是否有任何标志可以通过 SSH 开始apt-get工作?
远程安装用于在集成服务器上自动部署包。一旦我们将一些代码更改推送到存储库,作业就会拉入代码、构建包并在集成中部署它以检查一切是否正常(就部署而言)。
apt-get update干净利落地关闭。请注意,这apt-get update不是交互式的,而是apt-get install。这可能表明交互性是一个问题。ssh user@target "sudo apt-get install my_package && echo Hello"永远不会到达的命令echo。debconf 抱怨它找不到一个好的前端(Display、Readline),它回退到 Teletype(虽然 Readline 可用)。-tSSH传递强制 TTY 没有帮助。都没有DEBIAN_FRONTEND=noninteractive。我曾经用SSL证书运营过一个网站,但已经停止使用SSL证书。问题是网站的大部分外部链接都使用 https:// 前缀。
我在 .htaccess 文件中尝试了 https:// 到 http:// 重定向:
RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI}
Run Code Online (Sandbox Code Playgroud)
但是,正如其他地方指出的那样,服务器似乎在激活重定向之前尝试检索证书。因此,在完成重定向之前会显示错误。该错误要么是证书已过期的警告,要么是我删除了证书签名请求,然后是 SSL 收到超过最大允许长度的记录的错误。
有什么办法可以让传入的链接正确重定向?