通过SSH远程复制文本到Windows剪贴板失败问题求助
问题原因
Windows系统的剪贴板是与用户交互式桌面会话绑定的,远程SSH连接默认运行在系统的服务会话(Session 0)中,这个会话没有权限访问用户登录后打开的桌面会话里的剪贴板资源。而你在B本地执行脚本时,是在当前用户的交互式桌面会话中运行,所以能正常操作剪贴板。
解决方案
方案1:修改OpenSSH Server的运行权限(不推荐长期使用)
- 打开Windows服务管理器(按下
Win+R输入services.msc回车) - 找到
OpenSSH SSH Server服务,右键选择「属性」 - 切换到「登录」选项卡,选择「本地系统账户」,并勾选「允许服务与桌面交互」
- 重启
OpenSSH SSH Server服务
注意:这种方式存在安全风险,且当B电脑的用户注销后,服务可能无法正常访问剪贴板。
方案2:指定桌面会话执行命令
先在B本地执行query session查看当前登录用户的会话ID(通常是2),然后:
- 从A通过SSH连接B后,执行命令:
psexec -i <会话ID> cmd /c "type C:\Users\Administrator\Desktop\t.txt | clip" - 或者直接在A本地执行(无需先SSH连接):
psexec \\ipofcomputerB -u admin -p <密码> -i <会话ID> cmd /c "type C:\Users\Administrator\Desktop\t.txt | clip"
需要提前在B安装PsTools工具包中的psexec。
方案3:将内容传回A的剪贴板(最推荐)
直接在A的命令行执行,把远程文件内容通过SSH管道传输到A的clip命令,复制到A的剪贴板:
ssh admin@ipofcomputerB "type C:\Users\Administrator\Desktop\t.txt" | clip
这个方案不需要修改B的任何配置,操作简单且安全。
补充说明
pyperclip无效的原因和clip命令一致:它依赖当前运行会话的剪贴板,远程SSH会话无法访问用户桌面的剪贴板资源。
内容的提问来源于stack exchange,提问作者HARIHARAN SUBRAMANIAN
相关产品推荐
相关产品推荐

