我有将WSL作为主机和Arch Linux guest的Windows 10,我也有两个脚本。 拳头,在主机Windows机器上:
#!/bin/bash
cat clip | /mnt/c/Window/System32/clip.exe
第二,在远程访客计算机上:
#!/bin/bash
scp /home/sandric/clip host:clip
ssh host "./hclip.sh"
如您所见,文件剪辑在远程计算机上填充了一些文本,然后通过scp发送到主机,最后将其内容放入Windows剪贴板。一切正常,直到此文件包含西里尔字母内容,例如“тест”。如果我从远程计算机上调用./hclip.sh
-剪贴板上充满了“yé╨╡╤ü╤é”字样,但是很奇怪,如果我直接运行脚本而不是从ssh会话运行-我得到的是西里尔字母
换句话说,从Windows主机:./hclip.sh
(其内容为cat clip | /mnt/c/Window/System32/clip.exe
)中使用“тест”进行操作,我在剪贴板中得到了相同的“тест”。但是,如果我改为先登录来宾linux,然后在剪辑文件中使用相同的“тест”运行“ ssh'./hclip.sh'”,我会发脾气。
我认为我在ssh配置中缺少某些语言环境设置,是吗?我应该将其放置在/ etc / ssh / config或本地.ssh / config中的什么位置?
更新
经过一些测试,我发现实际上它的ControlPersist
ssh设置由于某种原因导致了错误的编码。这是我的访客ssh的配置:
host host
HostName 10.0.2.2
User sandric
ControlMaster auto
ControlPath /tmp/ssh-host
ControlPersist yes #Causing trouble
如果我在最后一行发表评论-一切工作正常,那是因为它很长-我不想在要向剪贴板中写入smth时关闭隧道并打开新连接。