sftp 没有可用的受支持的身份验证方法

sftp 没有可用的受支持的身份验证方法

我正在尝试设置 sftp 以从特定目录 (var/www/mysite.com) 上传/下载文件

我的问题是,当我尝试使用 Filezilla 进行连接时,出现错误提示

没有可用的受支持的身份验证方法(服务器发送:公钥)

所以我认为我在 Ubuntu LAMP 服务器上设置和配置 sftp 时错过了一步。我不应该希望能够使用用户名和密码而不是密钥文件进行 sftp。

这是我所做的:通过 SSH 创建用户和密码,然后

sudo adduser <username> www-data

然后我

sudo nano /etc/vsftpd.conf

并在文件设置chroot_local_user=YES和注释掉然后chroot_list_enable=YES我使用以下命令重新启动 sftp:

sudo service vsftpd restart

然后我配置了用户目录 sudo usermod -d /var/www/mydomain.com 注意我用我创建的用户名替换它

然后我

sudo nano /etc/ssh/sshd_config

并将以下内容添加到文件底部

Subsystem  sftp  internal-sftp
Match user <username>
ChrootDirectory /var/www/mydomain.com
ForceCommand internal-sftp
AllowTcpForwarding no

并确保在文件中进一步注释掉此内容(IE在你刚添加的那个之前)

#Subsystem sftp /usr/lib/openssh/sftp-server

然后我使用以下命令重新启动 ssh:

sudo service ssh restart

并使用以下方法更改权限:

chown root:root /var/www
chown root:root /var/www/mydomain.com
chmod 755 /var/www

最后我做了:

sudo chown -R www-data:www-data /var/www/mydomain.com
chmod 755 /var/www/site

但是我无法通过 filezilla 登录 sftp??

当我运行 ssh 命令时:

sftp -vvv user@servername

我得到以下信息。var/log 文件夹中没有 /secure?

当我运行上述命令时,我得到了这个输出

OpenSSH_7.2p2 Ubuntu-4ubuntu2.1, OpenSSL 1.0.2g  1 Mar 2016
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
/etc/ssh/ssh_config: line 57: Bad configuration option: usepam
/etc/ssh/ssh_config: line 58: Bad configuration option: subsystem
debug2: checking match for 'user <username>' host *****.com originally *****.com
debug3: /etc/ssh/ssh_config line 59: not matched 'user "*****"'
debug2: match not found
/etc/ssh/ssh_config: line 60: Bad configuration option: chrootdirectory
/etc/ssh/ssh_config: line 61: Bad configuration option: forcecommand
/etc/ssh/ssh_config: line 62: Bad configuration option: allowtcpforwarding
/etc/ssh/ssh_config: terminating, 5 bad configuration options
Couldn't read packet: Connection reset by peer

答案1

/etc/ssh/ssh_config: line 60: Bad configuration option: chrootdirectory
/etc/ssh/ssh_config: line 61: Bad configuration option: forcecommand
/etc/ssh/ssh_config: line 62: Bad configuration option: allowtcpforwarding
/etc/ssh/ssh_config: terminating, 5 bad configuration options

您把这些配置选项放在ssh_config而不是 中sshd_config。它们在第一个中无效。

sudo chown -R www-data:www-data /var/www/mydomain.com

这也是错误的,因为该chroot目录必须由 root 拥有,并且不能由任何其他用户写入,正如许多答案和手册页中所解释的那样sshd_config

相关内容