使用 sftp 时如何防止出现“上次登录:”消息?

Omi*_*mid 10 ssh sftp openssh motd

在Ubuntu的GNU / Linux 12.04,我有一个用户johndoe,其为部分sftponly基团,设立sftp到一个chroot使用监狱

Subsystem sftp internal-sftp

Match Group sftponly
        ChrootDirectory %h
        ForceCommand internal-sftp
        AllowTcpForwarding no
Run Code Online (Sandbox Code Playgroud)

/etc/ssh/ssh_config. 用户home目录的所有组件都是 -root拥有的目录,任何其他用户或组都不能写入,如man sshd_config(下ChrootDirectory)中所述。在他的chroot监狱里,有一个可写的目录files

sudo groupadd sftponly    
sudo mkdir -p /home/sftponly/johndoe/files
sudo useradd -d /home/sftponly/johndoe -g sftponly -s /usr/sbin/nologin johndoe
sudo chmod go-w /home/sftponly/{,johndoe}
sudo chown johndoe:sftponly /home/sftponly/johndoe/files
sudo chmod ug+rwX /home/sftponly/johndoe/files
Run Code Online (Sandbox Code Playgroud)

(将外壳设置/bin/falsessh或 都不起作用sftp。随着nologin外壳ssh连接,显示“MOTD”,然后断开连接,这是预期的行为。)

sftp失败的消息Received message too long 1416128883。我知道这个失败是由“MOTD”(每日消息)引起的,正如sftp预期的“干净登录”。我已尝试使用以下方法禁用服务器上的所有“MOTD”部分,(这些结果):

  • PrintLastLog no和添加PrintMotd no到末尾/etc/ssh/ssh_configssh使用restart ssh. (无效。测试ssh显示“MOTD”和“上次登录:”。)

  • 注释掉session optional pam_motd.so/etc/pam.d/sshd。(防止 MOTD。但没有对应的“LastLog”条目,因此,使用“LastLogin:”进行测试ssh仍然显示,因此sftp仍然失败。)

  • 注释掉session optional pam_lastlog.sosession optional pam_motd.so/etc/pam.d/login。(无效。测试ssh显示 MOTD 和“上次登录:”。)

  • 创建.hushlogin使用客户端上的文件touch ~/.hushlogin。(没有效果。)

我没有想法。这个“上次登录:”消息可能来自哪里以及如何禁用它(理想情况下仅sftp用于ssh登录而不用于登录,但是,我想象作为sftp用途ssh,该消息将同时存在或不存在)?

Omi*_*mid 4

我的打字错误是导致我遇到上述不合理行为的原因。必须编辑的是/etc/ssh/sshd_config(对应于守护进程),而不是(对应于客户端)。我把这个问题留在这里,以防它对其他人有帮助。ssh/etc/ssh/ssh_configssh