我将Windows服务器上的WinSCP桌面应用程序用于物理接口,以将文件上传到Linux服务器。我使用SCP协议,并且在“高级”选项中,我在与安全服务器的连接上传递了SSH命令ssh username@ipaddress
,以隧道传输到我要上传文件的服务器。这使我可以直接从Windows通过Linux安全服务器将文件上传到端点Linux文件服务器。
源Windows服务器->安全Linux服务器->目标Linux服务器
使用C#,我可以使用此Session.ExecuteCommand
方法/成功上传或发送命令。但是,当我发送命令ssh username@ipaddress
时,我的脚本就挂在那里。我认为会话上下文在那里发生了变化,并且需要发生一些异步C#魔术。
我需要等效的C#才能模拟我的桌面WinSCP应用程序,在该应用程序中,我通过SSH命令ssh username@ipaddress
从源Windows服务器通过Linux安全服务器自由上传到远程Linux文件服务器。
是否可以将这些示例组合在一起以创建所需的C#代码?通过异步命令的WinSCP会话/ SSH隧道。我对示例非常熟悉,请帮忙!
答案 0 :(得分:0)
在WinSCP .NET程序集中,WinSCP GUI中“ Shell”选项的等效项是:
sessionOptions.AddRawSettings("Shell", "ssh username@ipaddress");
WinSCP GUI可以generate a code template为您服务。
由于WinSCP内置了SSH隧道支持,因此这可能是一个过大的选择,请参阅Tunnel page of its Advanced site settings dialog。
等效于C#的是:
sessionOptions.AddRawSettings("Tunnel", "1");
sessionOptions.AddRawSettings("TunnelHostName", "example.com");
sessionOptions.AddRawSettings("TunnelUserName", "john");
sessionOptions.AddRawSettings("TunnelPasswordPlain", "password");