我在服务器上有两个具有有效 SSH 帐户的用户。两个用户都可以通过 ssh 成功登录。
尝试挂载 SSHFS 时,usera 可以顺利挂载,而 userb 则收到错误:
remote host has disconnected
输入有效密码后。
在 auth.log 中我们得到:
Apr 25 19:12:49 Ophelia sshd[26211]: Accepted password for userb from [ip address] port 44609 ssh2
Apr 25 19:12:49 Ophelia sshd[26211]: pam_unix(sshd:session): session opened for user userb by (uid=0)
Apr 25 19:12:49 Ophelia sshd[26240]: subsystem request for sftp
Apr 25 19:12:49 Ophelia sshd[26240]: Received disconnect from [ip address]: 11: disconnected by user
Apr 25 19:12:49 Ophelia sshd[26211]: pam_unix(sshd:session): session closed for user userb
我读到这remote host has disconnected
可能是由中无效的 sftp 服务器引起的/etc/ssh/sshd_config
,但路径设置为/usr/lib/openssh/sftp-server
看起来有效的,并且用户可以正常使用 SSHFS。
服务器和客户端都是Ubuntu 10.04。
有什么建议么?
答案1
来自OpenSSH 常见问题解答(通过knoppixforum.de, 英文翻译这里):
如果您的 shell 初始化(.profile、.bashrc、.cshrc 等)会产生非交互式会话的输出,则 sftp 和/或 scp 可能会在连接时失败。此输出会使 sftp/scp 客户端感到困惑。您可以通过执行以下命令来验证您的 shell 是否正在执行此操作:
ssh yourhost /usr/bin/true
如果上述命令产生任何输出,则需要修改 shell 初始化。
也試一試ssh user@host /bin/true
。
答案2
我成功了……用户主文件夹的权限设置不正确。显然这不会阻止 ssh 登录,但会破坏 sshfs。
答案3
确保在连接之前从 username/.ssh/known_hosts 中删除主机密钥。我在使用 sshfs 和 sysrescuecd 时遇到了问题(每次启动都会获得新密钥等)。