我最近尝试使用sftp访问我的linux机器,在那里我实现了自己的简单外壳。并且我设置了除root用户以外的其他用户默认使用我的shell(通过编辑/ etc / passwd文件)。然后问题出现了,一旦我尝试通过sftp访问,我将收到一条消息:“接收的消息太长:”,我搜索了解决方案,一种解决方案是将该用户的默认shell改回普通的bash shell。我试过了,而且奏效了,问题在于,有没有办法我仍然可以使用自己的shell并允许sftp通过?请回答我更多细节,例如我应该编辑哪个文件等。在此先感谢:)
配置您的服务器以使用内部sftp服务器,将以下指令添加到/etc/ssh/sshd_config:
/etc/ssh/sshd_config
Subsystem sftp internal-sftp
这样,它将不会使用用户外壳程序来启动sftp服务器程序。