我必须确保我的流程已加密。我在一台 Windows 机器上,并且已通过 Cygwin 安装了一个 SFTP 服务器。我使用 WinSCP 作为客户端。我正在用 C# 开发另一个客户端。一切正常,但我不确定是否启用了加密。
在我的sshd_config
密码列表中没有报告这里(在下面Ciphers
)。
在我的/etc/sshd_config
档案里我有这个
#Ciphers and keying
#RekeyLimit default none
只是这个..我没有任何密码...这是我认为未启用加密的第一个原因。
另一个原因是在我正在开发的客户端中我看到一个属性:
CurrentServerEncryption = NULL
所以看起来我没有任何加密。
有人能告诉我如何编辑sshd_config
以启用密码或如何检查密码是否启用吗?
答案1
您所指的中的块
sshd_config
全部被注释掉(起始#
)。因此适用默认值。 的默认值Ciphers
不包含none
密码,因此服务器不允许未加密的连接。请注意,OpenSSH 的标准版本甚至不允许您启用加密none
。您必须重新编译 OpenSSH。
请参阅如何禁用 openssh 上的加密?WinSCP 也不允许使用
none
密码。
请参阅https://winscp.net/eng/docs/ui_login_ssh
因此,如果您可以使用 WinSCP 连接,则表示该连接是加密的。在WinSCP日志中,您可以看到协商的密码:
. 2014-11-06 16:41:26.328 Initialised AES-256 SDCTR client->server encryption . 2014-11-06 16:41:26.328 Initialised HMAC-SHA-256 client->server MAC algorithm . 2014-11-06 16:41:26.328 Initialised AES-256 SDCTR server->client encryption . 2014-11-06 16:41:26.328 Initialised HMAC-SHA-256 server->client MAC algorithm
关于
CurrentServerEncryption
:我假设你指的是SSH.NETSession.ConnectionInfo.CurrentServerEncryption
,对吧?
您是在连接到服务器后读取该值吗?还请注意,即使连接未加密,该值也应为"none"
,而不是NULL
。这NULL
可能表示尚未选择密码(连接未打开)。