SFTP 怎么往服务器上上传整个文件夹?

SFTP 怎么往服务器上上传整个文件夹?,第1张

使用SecureSRT中的SFTP传递文件夹时,有个小细节值得注意一下:
1)在文件夹名dirname后加上'/',传输后,目标位置没有新建文件夹dirname,只有dirname文件夹下的各个文件。

如:

sftp> get -r smsrc/

2)在文件夹名dirname后不加'/',传输后,目标位置新建文件夹dirname,所有文件位置新建文件夹dirname下。

如:

sftp> get -r smsrc

目录开始一直往上到系统根目录为止的目录拥有者都只能是 root,用户组可以不是 root。

目录开始一直往上到系统根目录为止都不可以具有群组写入权限

上面2点一定注意,仔细检查。我就是因为这个问题,导致一直有这个问题。仔细检查配置后,解决问题。

如果你访问过较新版本的Mac OS X中的“共享首选项”面板,则可能已经注意到不再允许FTP服务器共享文件和文件夹的直接选项。至少没有一个明显的选择,但FTP和SFTP服务器功能仍然存在,这两个刚分裂成不同的功能,新版本的OS X喜欢SFTP而不是FTP。无论你想要使用什么,为其中任何一个设置服务器都非常简单,下面将介绍如何在OS X中启动FTP或SFTP服务器。

这将启动Mac上的通用FTP和FTPS服务器,但不是SFTP服务器:

如果你看到熟悉的FTP登录:

那么说明服务器正在运行。如果你没有看到,那么服务器还没有完成启动,或者你没有正确输入命令。然后,你可以通过相同的ftp命令,或使用Finder中的“连接到服务器”选项进行FTP。

正如你可能知道的那样,FTP是未加密的,因此出于安全考虑而失宠。现在在Mac上启用SFTP实际上比FTP更容易:

你可以通过在命令行输入以下内容来验证SFTP是否正常工作:

注意: FTP和SFTP服务器是不同的,启用一个不启用另一个。建议使用SFTP,因为默认加密层和安全传输。

以下是如何禁用FTP服务器的方法:

如命令所示,这将卸载ftp守护进程并关闭服务器。你只能关闭和禁用FTP服务器。而禁用SFTP只是取消选中位于OS X的“共享首选项”面板中的“远程登录”框。

Mac系统是原生集成了 ftp服务器, 只要简简单单的几步设置就能把你的mac变成ftp服务器, 这样方便了我们跨平台共享文件
在Macbook上做如下设置:
[blockquote]
打开System Preferences > Share 对话框,在左侧列表中的“File Sharing”之前打勾;[/li]
[/li]点击该对话框中的“Options”按钮;[/li]
[/li]在随后出线的对话框中的“Share files and folders using FTP”之前打勾;[/li]
[/li]点击“Done”按钮完成设置[/li]
[/blockquote]在Windows机器上打开资源管理器或者浏览器,在地址栏输入:
[blockquote]ftp://macbook用户名:macbook密码@macbook IP地址
[/blockquote][blockquote]例如: ftp://pearmac:123456@19216801
[/blockquote]如此即可通过FTP方式访问Macbook上的所有文件

一、分离SSH和SFTP服务

系统内开启ssh服务和sftp服务都是通过/usr/sbin/sshd这个后台程序监听22端口,而sftp服务作为一个子服务,是通过/etc/ssh/sshd_config配置文件中的Subsystem实现的,如果没有配置Subsystem参数,则系统是不能进行sftp访问的。

1、 拷贝/usr/lib/systemd/system/目录下的sshdservice文件,放到/etc/systemd/system/目录下,命名为:sftpdservice
cp /usr/lib/systemd/system/sshdservice /etc/systemd/system/sftpdservice

2、 拷贝/etc/pamd/目录下的sshd文件,放到同目录,命名为:sftpd
cp /etc/pamd/sshd /etc/pamd/sftpd

3、 拷贝/etc/ssh/目录下的sshd_config文件,放到同目录,命名为:sftpd_config
cp /etc/ssh/sshd_config /etc/ssh/sftpd_config

4、 对service和rcsftpd进行软连接
ln -sf /usr/sbin/service /usr/sbin/rcsftpd

5、 对sshd和sftpd进行软连接
ln -sf /usr/sbin/sshd /usr/sbin/sftpd

6、 拷贝/etc/sysconfig/目录下的sshd文件,放到同目录,命名为:sftp
cp /etc/sysconfig/sshd /etc/sysconfig/sftp

7、 拷贝/var/run/目录下的sshdpid文件,放到同目录,命名为:sftpdpid
cp /var/run/sshdpid /var/run/sftpdpid

1、 修改/etc/systemd/system/目录下sftpdservice文件
vim /etc/systemd/system/sftpdservice

[Unit]

Description=sftpd server daemon

Documentation=man:sshd(8) man:sshd_config(5)

After=networktarget sshd-keygenservice

Wants=sshd-keygenservice

[Service]

Type=notify

EnvironmentFile=/etc/sysconfig/sftp

ExecStart=/usr/sbin/sftpd -f /etc/ssh/sftpd_config

ExecReload=/bin/kill -HUP $MAINPID

KillMode=process

Restart=on-failure

RestartSec=42s

[Install]

WantedBy=multi-usertarget

2、 修改/etc/ssh/目录下的sftpd_config文件
vim /etc/ssh/sftpd_config
具体修改如下:
Port 22 改成Port 指定端口

改成
PermitRootLogin no
就是取消该行的注释,并将yes改成no,这行参数的目的是拒绝root用户登录

改成
PidFile /var/run/sftpdpid
就是取消该行的注释,并将sshdpid改成sftpdpid

Subsystem sftp /usr/libexec/openssh/sftp-server
注释

Subsystem sftp internal-sftp
Match User sftpuser
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp

3、 清空/var/run/目录下的sftpdpid文件内容

4、 添加sftp的专用账户
useradd sftpuser
passwd sftpuser
usermod -s /bin/false sftpuser

5、 禁用selinux
setenforce 0

6、 重启sftpd服务
systemctl daemon-reload
systemctl start sftpd

Windows7系统连接FTP服务器方法:
1、打开->计算机 在工具栏中选择 ->映射网络驱动器。
2、经过上一步d出映射网络驱动器。在d出的窗口中选择“连接到可用于存储文档和的网站”;选择完成出现下一个窗口直接下一步。
3、选择自定义网络位置,选择后点击下一步,d出一个新窗口,这里面需要输入ftp服务器的ip地址,输入完成后下一步。
4、上一步通过后会d出一个新窗口,没有设置的内容请直接下一步,之后又d出一个新窗口,这个窗口是配置完成之后你登录ftp图表的名字,请随意填写即可。
5、FTP登录客户端位置,经过以上4步的配置FTP连接方式已经成功完成,而且通这种方法配置是会永久可用的,不需去手动填写FTP的ip地址,登录ftp服务非常容易,打开win7 系统的计算机,在硬盘和光驱下面就会出现fpt登录的图表。
6、配完可能会出现登录ftp在网页下显示,这样是不对的,需要修改为资源管理器显示,这样 *** 作才方便,具体步骤打开IE浏览器-->工具-->internet选项,修改显示方式。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10593853.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-09
下一篇2023-05-09

发表评论

登录后才能评论

评论列表(0条)

    保存