答案1
这不太可能与语言环境有任何关系。根据您在一条评论中随意提及的内容,“这可能与尝试通过以下方式登录的用户个人资料有关sftp
”,我担心您没有以 root 身份登录远程服务器。
非 root 用户无法访问/root
,这会反映在您的sftp
会话中。这是我的本地服务器上的相同文件,其中СтранноеРусскоеИмя
已将一个名为 的文件放入目录中/tmp/526629
:
sftp remoteuser@remoteserver
Connected to remoteserver.
sftp> cd /root
sftp> ls
remote readdir("/root"): Permission denied
sftp> cd /tmp/526629
sftp> ls
СтранноеРусскоеИмя
sftp>
另一个选择可能确实是语言环境。在此会话中,我们具有与之前相同的服务器配置:
# Locale is UTF-8
LC_CTYPE="en_GB.UTF-8" sftp remoteuser@remoteserver
Connected to remoteserver.
sftp> cd /tmp/526629/
sftp> ls
СтранноеРусскоеИмя
sftp>
# Locale is C
LC_CTYPE=C sftp remoteuser@remoteserver
Connected to remoteserver.
sftp> cd /tmp/526629/
sftp> ls
sftp>
我无法重现您的remote readdir("/root"): Failure
,但也许您可以检查远程服务器上的区域设置以确保将其设置为 UTF-8 变体。