2011-11-23 62 views
5

我最近试图使用sftp来访问我的linux box,在那里我实现了一个我自己的简单shell。并且我设置除root之外的用户在默认情况下使用mine shell(通过编辑/ etc/passwd文件)。然后出现问题,一旦我尝试通过sftp访问,我将收到一条消息,指出“Received message too long:”,我搜索了解决方案,一种解决方案是将该用户的默认shell更改回普通bash shell。我试过了,它的工作,问题是,有没有办法,我仍然可以使用我自己的shell,并允许sftp通过?请回答我有更多的细节,如哪些文件,我应该去编辑等。在此先感谢:)SFTP访问服务器的shell不是bash作为默认shell

回答

13

服务器配置为使用内部SFTP服务器添加以下指令/etc/ssh/sshd_config

Subsystem sftp internal-sftp 

这样,它不会使用用户shell来启动sftp服务器程序。

+1

这个工程,非常感谢你的帮助。 –

+1

工作很好,谢谢。我还必须添加一个'sudo service sshd restart',然后我重新启动我的sftp守护进程('sudo service vsftpd restart')以获得更好的效果。 – RaveTheTadpole