使用 openssh 时删除 sftp 用户名中的 BOM 标记

使用 openssh 时删除 sftp 用户名中的 BOM 标记

我在 Ubuntu 22.04 上使用 openssh 1:8.9p1-3ubuntu0.1 运行 SFTP 服务器。连接客户端时反复出现的问题是用户名以 \357\273\277 为前缀一次或多次。这是一个不需要的 UTF-8 BOM 标记,并且此登录尝试失败,因为用户名不存在以 BOM 为前缀的情况。

我目前正在与每位客户合作修复他们的连接。他们似乎有一个共同点,那就是他们使用 Windows 并使用便签应用存储他们的 SFTP 凭据,因此可能是该应用添加了 BOM。他们大概全部使用具有一些 BOM 设置的 WinSCP,但这些设置似乎特定于 WinSCP 传输的文件。

有没有办法让 openssh 或 PAM 去掉前导 BOM?

如果它特定于 WinSCP,客户端是否应该配置一些设置?

谢谢

相关的 /var/log/auth.log 条目

Aug 28 16:13:25 sftp1 sshd[1670168]: Failed password for invalid user \357\273\277\357\273\277redacted_sftp_username from 165.165.165.165 port 35970 ssh2

Linux 版本

sftp1:~# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.3 LTS
Release:        22.04
Codename:       jammy

Openssh 版本

sftp1:~# dpkg -l | grep openssh
ii  openssh-client                     1:8.9p1-3ubuntu0.1                      amd64        secure shell (SSH) client, for secure access to remote machines
ii  openssh-server                     1:8.9p1-3ubuntu0.1                      amd64        secure shell (SSH) server, for secure access from remote machines
ii  openssh-sftp-server                1:8.9p1-3ubuntu0.1                      amd64        secure shell (SSH) sftp server module, for SFTP access from remote machines

系统区域设置

sftp1:~# locale
LANG=C.UTF-8
LANGUAGE=
LC_CTYPE="C.UTF-8"
LC_NUMERIC="C.UTF-8"
LC_TIME="C.UTF-8"
LC_COLLATE="C.UTF-8"
LC_MONETARY="C.UTF-8"
LC_MESSAGES="C.UTF-8"
LC_PAPER="C.UTF-8"
LC_NAME="C.UTF-8"
LC_ADDRESS="C.UTF-8"
LC_TELEPHONE="C.UTF-8"
LC_MEASUREMENT="C.UTF-8"
LC_IDENTIFICATION="C.UTF-8"
LC_ALL=

相关内容