Bitvise SSH 客户端命令行 (stnlc.exe) 在具有 GUI 的客户端成功连接时出现错误
Bitvise SSH Client command line (stnlc.exe) gets error while the one with GUI successfully connected
我正在将 Bitvise 客户端集成到我的 winform 应用程序中。我正在使用 Bitvise SSH 客户端命令行(应用程序目录中的 stnlc.exe)来执行此操作。我的应用程序需要同时有多个连接。
它适用于某些地址,但其他地址则不然。这是我正在使用的命令:
"C:\Program Files (x86)\Bitvise SSH Client\stnlc.exe" -profile="C:\Users\AutoOffer\AutoOffer\bin\Debug\data\sshprofile.bscp" -host=<myhost> -port=22 -user=<username> -pw=<password> -ka=y -proxyFwding=y -proxyListIntf=127.0.0.1 -proxyListPort=<port>
这是我得到的错误:
Bitvise SSH Client 6.45 - stnlc - free for individual use only, see EULA
Copyright (C) 2000-2015 by Bitvise Limited.
Connecting to SSH2 server XX.XX.XX.XX:22.
Connection established.
Server version: SSH-2.0-dropbear_0.46
First key exchange started.
ERROR: The SSH2 session has terminated with error.
Reason: Error class: LocalSshDisconn, code: KeyExchangeFailed, message: FlowSshTransport: no mutually supported key exchange algorithm.
Local list: "ecdh-sha2-1.3.132.0.10,ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256,diffie-hellman-group14-sha1".
Remote list: "diffie-hellman-group1-sha1".
我尝试通过带有 GUI 的 Bitvise 应用程序手动连接并成功连接!
我也更新了我的 bitvise 版本到最新的 (6.45)。
Local list: "ecdh-sha2-1.3.132.0.10,ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256,diffie-hellman-group14-sha1".
Remote list: "diffie-hellman-group1-sha1".
看来远端只支持diffie-hellman-group1-sha1
,你这边不支持
在 Bitvise SSH Server Version History 我读到:
The 1024-bit fixed prime Diffie Hellman key exchange methods, diffie-hellman-group1-sha1 and gssapi-group1-sha1 with Kerberos 5, are now disabled by default, due to doubts about continuing security of Diffie Hellman with a 1024-bit fixed prime. Compatibility with most older clients should be retained via the diffie-hellman-group14-sha1 method, which uses a 2048-bit fixed prime. We recommend migrating older SSH clients to new versions supporting ECDH and ECDSA.
看来您必须修改设置并允许 1024 位固定素数 Diffie Hellman 密钥交换方法。否则您将无法连接。如前所述,更改 ssh 服务器设置当然更好。
另外,请注意 运行 stnlc
作为一项服务是有可能的。有了它,即使用户无需登录也可以启动隧道,并且可以在掉线时重新启动。
请注意,包装和 运行 stnlc
作为一项服务(使用例如 nssm
或 winsw
) 绝对需要 添加 unat=y
选项以防止服务交互和失败。
我正在将 Bitvise 客户端集成到我的 winform 应用程序中。我正在使用 Bitvise SSH 客户端命令行(应用程序目录中的 stnlc.exe)来执行此操作。我的应用程序需要同时有多个连接。 它适用于某些地址,但其他地址则不然。这是我正在使用的命令:
"C:\Program Files (x86)\Bitvise SSH Client\stnlc.exe" -profile="C:\Users\AutoOffer\AutoOffer\bin\Debug\data\sshprofile.bscp" -host=<myhost> -port=22 -user=<username> -pw=<password> -ka=y -proxyFwding=y -proxyListIntf=127.0.0.1 -proxyListPort=<port>
这是我得到的错误:
Bitvise SSH Client 6.45 - stnlc - free for individual use only, see EULA
Copyright (C) 2000-2015 by Bitvise Limited.
Connecting to SSH2 server XX.XX.XX.XX:22.
Connection established.
Server version: SSH-2.0-dropbear_0.46
First key exchange started.
ERROR: The SSH2 session has terminated with error.
Reason: Error class: LocalSshDisconn, code: KeyExchangeFailed, message: FlowSshTransport: no mutually supported key exchange algorithm.
Local list: "ecdh-sha2-1.3.132.0.10,ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256,diffie-hellman-group14-sha1".
Remote list: "diffie-hellman-group1-sha1".
我尝试通过带有 GUI 的 Bitvise 应用程序手动连接并成功连接!
我也更新了我的 bitvise 版本到最新的 (6.45)。
Local list: "ecdh-sha2-1.3.132.0.10,ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256,diffie-hellman-group14-sha1".
Remote list: "diffie-hellman-group1-sha1".
看来远端只支持diffie-hellman-group1-sha1
,你这边不支持
在 Bitvise SSH Server Version History 我读到:
The 1024-bit fixed prime Diffie Hellman key exchange methods, diffie-hellman-group1-sha1 and gssapi-group1-sha1 with Kerberos 5, are now disabled by default, due to doubts about continuing security of Diffie Hellman with a 1024-bit fixed prime. Compatibility with most older clients should be retained via the diffie-hellman-group14-sha1 method, which uses a 2048-bit fixed prime. We recommend migrating older SSH clients to new versions supporting ECDH and ECDSA.
看来您必须修改设置并允许 1024 位固定素数 Diffie Hellman 密钥交换方法。否则您将无法连接。如前所述,更改 ssh 服务器设置当然更好。
另外,请注意 运行 stnlc
作为一项服务是有可能的。有了它,即使用户无需登录也可以启动隧道,并且可以在掉线时重新启动。
请注意,包装和 运行 stnlc
作为一项服务(使用例如 nssm
或 winsw
) 绝对需要 添加 unat=y
选项以防止服务交互和失败。