Estou executando o OpenSSH no Cygwin, que estou tentando usar apenas como servidor SFTP. Eu instalei primeiro com apenas as configurações padrão (servidor externo SFTP sftp-server
) e funcionou. Consegui executar o PSFTP do PuTTY e "abrir localhost" e procurar meus arquivos.
No entanto, por segurança, eu queria:
- Permitir apenas acesso SFTP (não SSH)
- Permitir somente login (não outros usuários)
- Permitir apenas que eu navegue no meu diretório pessoal
- Permitir somente acesso somente leitura
Para conseguir isso, coloquei o seguinte no final de /etc/sshd_config
:
Subsystem sftp internal-sftp
Match User myusername
ChrootDirectory /home/myusername
AllowTCPForwarding no
X11Forwarding no
ForceCommand internal-sftp -d / -R
Match User !myusername
ForceCommand echo 'successful login man, congrats'
(A última parte é de esta resposta , que essencialmente impede o login do usuário correspondente.)
Observe que também adicionei -d /
à linha de comando internal-sftp
, pois ele me disse que o padrão é o diretório inicial, então pensei em tentar carregar /home/myusername
por padrão, o que seria mapeado para /home/myusername/home/myusername
no sistema real (um caminho que não existe).
No entanto, ao tentar fazer o login, eu agora recebo o seguinte erro:
psftp> open localhost
login as: myusername
myusername@localhost's password:
Fatal: unable to initialise SFTP: could not connect
psftp>
Curiosamente, estou no servidor, mas não no SFTP:
psftp> open localhost
login as: myusername
myusername@localhost's password:
Fatal: unable to initialise SFTP: could not connect
psftp> open localhost
psftp: already connected
psftp> pwd
Remote directory is (null)
psftp>
O que estou fazendo de errado ou como posso obter registros para uma solução de problemas adicional?