为什么在Windows Bash上使用openssl时需要在前面加上winpty前缀?

为什么我在Windows Bash上需要在openssl前加上winpty前缀?

为什么命令会这样?

openssl genrsa -des3 -out ca.key 4096
卡住了,没有反应。 同时
winpty openssl genrsa -des3 -out ca.key 4096
工作正常吗?
2个回答

bash来自Git for Windows使用minttymintty无法将自身呈现为openssl的控制台,但winpty可以,因为它执行所需的转换。请在Git for Windows FAQ中了解详细信息。


1补充答案:winpty在后台运行一个真实的Windows控制台窗口。 - Mingye Wang

winpty是一个Windows软件包,提供类似于Unix pty-master的接口,用于与Windows控制台程序进行通信。该软件包由一个库(libwinpty)和一个用于在Cygwin和MSYS中运行Windows控制台程序的工具组成。 因为您尝试在非本机shell中运行本机openssl,所以您需要使用winpty的接口。

请您能详细解释一下吗?我没太明白。 - Patlatus
@Patlatus 本地的OpenSSL无法在非本地的shell环境中运行。 - Mohammad Kholghi
谢谢大家!为了进一步完善答案,也许可以给"原生外壳"提供一些详细的描述。 - blong