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)?