No Ubuntu GNU / Linux 12.04, eu tenho um usuário johndoe que faz parte de um grupo sftponly , configurado para sftp para uma chroot jail usando
Subsystem sftp internal-sftp
Match Group sftponly
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
no final de /etc/ssh/ssh_config . Todos os componentes do diretório home do usuário são os diretórios root -owned que não podem ser gravados por nenhum outro usuário ou grupo, conforme explicado em man sshd_config (em ChrootDirectory ). Dentro de sua chroot jail, existe um diretório gravável 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
(Definir o shell como /bin/false não funcionou com ssh ou sftp . Com nologin quando o shell ssh se conecta, mostra "MOTD" e, em seguida, desconecta, que é o comportamento esperado .)
Mas sftp falha com a mensagem Received message too long 1416128883 . Eu sei que essa falha é causada por "MOTD" (mensagem do dia), como sftp espera um "login limpo". Eu tentei desativar todas as partes "MOTD" no servidor usando o seguinte, com ( estes resultados ):
-
Adicionando PrintLastLog no e PrintMotd no ao final de /etc/ssh/ssh_config e reiniciando ssh usando restart ssh . ( Sem efeito . O teste com ssh mostra "MOTD" e "Last Login:".)
-
Comente o session optional pam_motd.so em /etc/pam.d/sshd . ( Impede MOTD . Mas não há entrada correspondente para "LastLog", portanto, o teste com ssh , "Último login:" ainda é exibido e, portanto, sftp ainda falha .)
-
Comente session optional pam_lastlog.so e session optional pam_motd.so em /etc/pam.d/login . ( Sem efeito . O teste com ssh mostra o MOTD e o "Último login:".)
-
Criando o arquivo .hushlogin no cliente usando touch ~/.hushlogin . ( Nenhum efeito .)
Estou sem ideias. Onde mais essa mensagem "Último Login:" pode vir e como ela pode ser desativada (de preferência apenas para sftp e não para ssh logins, mas, imagino como sftp usa ssh , a mensagem é vai estar lá para ambos ou nenhum)?