sftp:No match 报错怎么解决
时间: 2024-04-25 17:21:46 浏览: 15
sftp: No match 报错通常是由于使用了通配符导致的。当你在 sftp 命令中使用通配符时,如果没有匹配的文件或目录,就会出现这个错误。
要解决这个问题,你可以尝试以下几种方法:
1. 检查你使用的通配符是否正确。确保通配符匹配到了你希望操作的文件或目录。
2. 如果你只是想传输一个文件,而不是多个文件,可以尝试去掉通配符,直接指定文件名。
3. 如果你确实希望使用通配符来操作多个文件或目录,但是出现了报错,那么可能是因为没有匹配到任何文件或目录。你可以通过使用 ls 命令来查看当前目录下的文件和目录列表,并确认是否存在你希望操作的文件或目录。
4. 如果以上方法都无效,那么可能是因为 sftp 的版本不支持通配符。你可以尝试升级 sftp 版本或者使用其他支持通配符的工具来完成你的操作。
希望以上方法能够帮助你解决 sftp: No match 报错问题!如果还有其他问题,请随时提问。
相关问题
sftp:config
对于配置SFTP,您可以按照以下步骤进行操作:
1. 首先,确保您的服务器上已经安装了OpenSSH服务器软件包。如果尚未安装,请使用适用于您的操作系统的包管理器进行安装。
2. 打开OpenSSH服务器配置文件。在大多数Linux发行版上,配置文件位于`/etc/ssh/sshd_config`。您可以使用任何文本编辑器打开此文件。
3. 在配置文件中查找并确保以下行没有被注释掉(行前没有`#`符号):
```
Subsystem sftp /usr/lib/openssh/sftp-server
```
4. 如果上述行被注释掉了,请取消注释。如果您的系统上没有这一行,可以手动添加它。
5. 保存并关闭配置文件。
6. 重启SSH服务器以使更改生效。在大多数Linux发行版上,可以使用以下命令来重启SSH服务器:
```
sudo systemctl restart sshd
```
配置完成后,您可以使用SFTP客户端连接到您的服务器。例如,使用OpenSSH的sftp命令:
```
sftp user@hostname
```
其中,`user`是您的用户名,`hostname`是您的服务器的主机名或IP地址。
注意:在配置SFTP之前,请确保您已经设置了正确的SSH访问权限和用户访问权限,并且已经创建了具有适当访问权限的用户帐户。
python paramiko sftp.put 报错Permission denied:
这个错误通常是由于远程服务器上的目录没有写入权限导致的。你需要确认以下几点:
1. 目标目录是否存在
2. 目标目录是否有写入权限
3. 用户是否有写入权限
你可以在程序中添加如下代码,来检查目标目录是否存在,并且具有写入权限:
```
import os
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname='remote_server', port=22, username='username', password='password')
sftp = ssh.open_sftp()
remote_path = '/path/to/remote/directory'
try:
sftp.stat(remote_path)
except IOError:
sftp.mkdir(remote_path)
# 修改目录权限为可写
sftp.chmod(remote_path, 0o777)
local_path = '/path/to/local/file'
sftp.put(local_path, remote_path)
sftp.close()
ssh.close()
```
在这个代码中,我们首先检查目录是否存在,如果不存在则创建目录,并将其权限设置为可写。然后我们使用`sftp.put()`方法将本地文件传输到远程服务器上的目录中。