繁体   English   中英

在 powershell ssh 会话中访问 Windows 网络驱动器

[英]Access Windows network drives inside powershell ssh session

我正在尝试从 linux 机器远程自动执行 Windows 上的一些脚本。 该脚本将读取共享驱动器上的一些文件,然后打印出一些输出。

问题

该脚本位于C:\\scripts\\script.py ,它将读取R:\\\\remoteFile映射)

使用ssh user@windows01 "python C:\\scripts\\script.py"执行脚本导致FileNotFoundError: [Errno 2] No such file or directory: 'R:'

该脚本在本地工作,当我将路径修改为本地路径并将文件移动到本地路径时它也适用

预期结果

映射的驱动器R:或远程路径\\\\remoteFile应该可以在 ssh 会话中访问

解决方法

在我的命令之前映射驱动器,即

ssh user@windows01 "net use R: \\\\\\\\remoteFile ${password} /user:user; python C:\\scripts\\script.py"

该解决方案有效但不是最佳的:我有很多脚本以不同的时间表运行,因此这意味着将此行添加到所有作业中。

我尝试过的事情

  • 修改脚本以直接读取\\\\remoteFile ,但该路径也不存在于 ssh 会话中
  • 我已经阅读了github 问题并设置了EnabledLInkedConnections但在 ssh 会话中仍然找不到路径
  • 我已经阅读了这个问题,但它没有考虑使用公钥的 ssh 会话
  • credSSP 可能是一个解决方案,但它需要在服务器/客户端进行更多设置,我不确定是否值得尝试(我听说 credSSP 也有安全问题)

有没有干净的方法来读取 ssh 会话中的远程文件? 脚本执行应完全自动化,因此不考虑任何需要交互式命令/手动输入的解决方案。

它之所以有效并让您在本地映射驱动器,是因为您具有直接访问权限和权限。 在远程访问的机器上无法访问共享的原因是“ol kerberos 双跳问题” 最简单的解决方案是在远程机器上本地获取该文件,而不是共享。 然后运行本地文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM