2011-11-23 35 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