我使用Windows服务器上的WinSCP桌面应用程序作为物理接口,将文件上传到Linux服务器。我使用SCP协议,在Advanced options中,我在连接到安全服务器时传递一个SSH命令ssh username@ipaddress,以隧道方式连接到我想要上传文件的服务器。这允许我通过Linux安全服务器将文件直接从Windows上传到端点Linux文件服务器。
源Windows服务器->安全Linux服务器->目标Linux服务器
使用此Session.ExecuteCommand方法/,我可以使用C#成功上传或发送命令。但是,当我发送命令ssh username@ipaddress时,我的脚本挂在那里。我认为会话上下文在那里发生了变化,需要发生一些异步的C#魔术。
我可以使用以下命令成功地发送异步SSH命令:https://csharp.hotexamples.com/examples/Renci.SshNet/SshClient/CreateCommand/php-sshclient-createcommand-method-examples.html#0x12a75b3c713031851a6d9f2c47732ffcab6bad015f554fa89ef604d333290d4a-28,,45,
我需要C#的等价物才能模拟我的桌面WinSCP应用程序,我在其中传递SSH命令ssh username@ipaddress,以便从源Windows服务器通过Linux Security server自由地上传到远程Linux文件服务器。
可以组合这些示例来创建我需要的C#代码吗?通过异步命令的WinSCP会话/SSH隧道。我很熟悉的例子,请帮帮忙!
发布于 2018-08-19 15:55:00
WinSCP图形用户界面中“外壳”选项的WinSCP .NET程序集中的等价物为:
sessionOptions.AddRawSettings("Shell", "ssh username@ipaddress");WinSCP图形用户界面可以为您generate a code template。
尽管这可能有些夸大其词,但请参阅Tunnel page of its Advanced site settings dialog,因为WinSCP具有内置的SSH隧道支持。

与此对应的C#是:
sessionOptions.AddRawSettings("Tunnel", "1");
sessionOptions.AddRawSettings("TunnelHostName", "example.com");
sessionOptions.AddRawSettings("TunnelUserName", "john");
sessionOptions.AddRawSettings("TunnelPasswordPlain", "password");https://stackoverflow.com/questions/51847688
复制相似问题