我最近尝试使用sftp来访问我的linux盒子,在那里我实现了一个我自己的简单shell。我设置除root之外的用户默认使用mine shell(通过编辑/ etc / passwd文件)。然后出现问题,一旦我尝试通过sftp访问,我将收到一条消息“收到的消息太长了:”,我搜索了解决方案,一个解决方案是将此用户的默认shell更改回正常的bash shell。我试过这样,它有效,问题是有没有办法,我仍然可以使用自己的shell,并允许sftp通过?请回答我更详细的信息,例如我应该编辑哪个文件等。提前致谢:)
答案 0 :(得分:15)
配置服务器以使用内部sftp服务器将以下指令添加到/etc/ssh/sshd_config
:
Subsystem sftp internal-sftp
这样,它就不会使用用户shell来启动sftp服务器程序。
答案 1 :(得分:0)
它可以通过使用 internal-sftp
子系统来修复。
编辑/etc/ssh/sshd_config
并替换
子系统sftp /usr/lib/openssh/sftp-server
由
<块引用>子系统 sftp internal-sftp
然后您需要使用以下命令重新启动 sshd
服务:
/bin/systemctl restart sshd.service