PowerShell调用WSL建立SSH远程连接并在远端执行脚本的实现方法
场景与已验证能力
- 已知PowerShell原生支持直接和远程主机建立连接,但受公司内部未明确公示的规则限制,所有远程连接操作必须通过*nix主机链路完成,当前使用WSL作为中间过渡链路完全符合合规要求。
- 已完成基础能力验证:可通过PowerShell脚本调用WSL执行单条命令,例如执行
scp -i ~/.ssh/my_prv_key file.zip ec2-user@2.2.2.2:/home/ec2-user/即可正常完成文件上传。
待实现的操作流程
- 手动*nix交互场景下的完整操作逻辑为:
- 先执行
ssh -i ~/.ssh/my_prv_key ec2-user@2.2.2.2建立远程连接 - 进入远端会话后依次执行操作:
- 切换工作目录到
/root/scripts - 切换至root权限
- 执行指定脚本
./do_something_with_uploaded_file.sh /home/ec2-user/file.zip
- 切换工作目录到
- 先执行
- 当前目标为通过PowerShell脚本端全流程驱动上述操作,暂未找到可行实现方案。
已尝试方案的异常表现
- 尝试直接通过WSL调用
ssh -i ~/.ssh/my_prv_key ec2-user@2.2.2.2实现流程串联,实际运行时可看到远端返回的最近登录时间(证明连接已成功建立),但PowerShell会话会一直处于阻塞等待状态,无法继续向远端传递后续执行指令。
内容的提问来源于stack exchange,提问作者MrRik
相关产品推荐
相关产品推荐

