如何配置 ftpsftp 访问远程文件

如何配置 ftpsftp 访问远程文件,第1张

众所周知SFTP账号是基于SSH账号的,所以在默认情况下访问服务器的权限是非常大的。下面为SFTP用户权限设置方法。

必要条件:

你的openssh-server版本至少得失48p1, 因为配置权限需要版本添加的新配置项ChrootDirectory来完成。

如何查看自己服务器上的ssh版本?大家可以尝试以下命令:

$ ssh -V

具体实施步骤:

1 我们需要创建一个用户组,专门用于sftp用户

$ groupadd sftpusers

2 我们创建一个用户test

$ useradd -s /bin/false -G sftpuser test

注意这里我们将test用户的shell设置为/bin/false使他没有登陆shell的权限

3 编辑 /etc/ssh/sshd_config

找到Subsystem这个配置项,将其修改为

Subsystem sftp internal-sftp

然后再到文件最尾处增加配置设定属于用户组sftpusers的用户都只能访问他们自己的home文件夹

Match Group sftpusers

ChrootDirectory %h

ForceCommand internal-sftp

AllowTcpForwarding no

保存并关闭文件

4 修改test用户home文件夹的权限,让其属于root用户

chown root ~test

5 重启sshd服务

$ service sshd restart

6 测试用户账号

$ ssh test@localhost

连接会被拒绝或者无法登陆

$ sftp tesst@localhost

登陆后你会发现你的账号无法切换到除自己home目录之外的地方的

常见问题:

如果你链接服务器的时候出现下面的提示:

Write failed: Broken pipe

Couldn't read packet: Connection reset by peer

这个问题的原因是ChrootDirectory的权限问题,你设定的目录必须是root用户所有,否则就会出现问题。所以请确保sftp用户根目录的所有人是root, 权限是 750 或者 755。

如果你访问过较新版本的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的“共享首选项”面板中的“远程登录”框。

可以按照如下方式进行设置:

1、创建sftp组,groupadd sftp,创建完成之后使用cat /etc/group命令组的信息。

2、创建一个sftp用户mysftp并加入到创建的sftp组中,同时修改mysftp用户的密码,useradd -g sftp -s /bin/false mysftp,passwd mysftp 。

3、新建/data/sftp/mysftp目录,并将它指定为mysftp组用户的home目录,mkdir -p /data/sftp/mysftp,usermod -d /data/sftp/mysftp mysftp。

4、编辑配置文件/etc/ssh/sshd_config,vi /etc/ssh/sshd_config,将如下这行用#符号注释掉。

5、设置Chroot目录权限,chown root:sftp /data/sftp/mysftp,chmod 755 /data/sftp/mys。

6、新建一个目录供stp用户mysftp上传文件,这个目录所有者为mysftp所有组为sftp,所有者有写入权限所有组无写入权限,mkdir /data/sftp/mysftp/upload,chown mysftp:sftp /data/sftp/mysftp/upload,chmod 755 /data/sftp/mysftp/upload。 

7、关闭selinux并重启sshd服务,然后测试。

8、在其他服务器上进行验证,sftp 用户名@ip地址。

1、sftp是Secure File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的网络的加密方法。sftp 与 ftp 有着几乎一样的语法和功能。SFTP 为 SSH的其中一部分,是一种传输档案至 Blogger 伺服器的安全方式。

2、其实在SSH软件包中,已经包含了一个叫作SFTP(Secure File Transfer Protocol)的安全文件信息传输子系统,SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接和答复操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。

密码的保存和保密是一件很麻烦的事,因为解密也是需要Key的,于是这就涉及到哲学中“先有鸡还是先有蛋”的问题。

那么问题来了,如果我们生产环境需要用到sFTP,密码如何保存呢?答案就是不用密码,把key种到对方服务器,建立互信关系。这个procedure同样适用于ssh帐号。

(生成private key 和public key。private key存在本地,public key 种在远程帐号。于是加密连接就靠这对key了。)

一般服务器为了安全禁止ssh下root账号登录,此时使用sftp登录管理服务器只能使用普通账号登录,给管理带来诸多不便,可以设置为特定普通SSH用户添加sudo权限

默认的登录是没有root权限的 ,在winscp使用scp方式登录后,想打开如root文件夹或想修改服务器文件时会出现没有权限的提示然后修改失败,如下图:

无权访问,错误码:3  服务器返回的错误信息:Permission denied 权限不允许

1产生在群晖Nas中设置打开终端 启动 Ssh功能

2使用putty 或win10 命令行 ssh 登录 ssh

   ssh root@19216808    其中 192168,08 为你群晖nas的IP

    密码为你管理员的密码  

     root@MyNas:/etc# sudo -i     #切换为管理员身份

 现输入 你管理员的密码

     root@MyNas:/etc# cd etc   #转换到etc 目录

     root@MyNas:/etc# cp sudoers  sudoersbak  #先备份sudoers 这个文件,以防万一

     root@MyNas:/etc# vi sudoers   #修改 sudoers 文件   进入后,按i 进入编辑插入状态

     找到这一行  

      # Allow members of group administrators to execute any command

     %administrators ALL=(ALL) ALL

     将其改为 :%administrators ALL=(ALL) NOPASSWD: ALL

      然后按esc 键,再输入 :wq! 保存

      因为sudoers 为只读文件,如果只用:wq 保存,会提示这是只读(readonly) 无法保存,所以要wq! 强制保存

      3然后在winscp 会话管理中进行这样的修改

       在登录窗口的点击“高级”进入高级设置:

           点 编辑 修改 站点,点高级,SCP/Shell  中修改默认为  sudo su -  

       然后保存就可以了

      4 winscp 再打开群晖Nas 的ssh, 就可以进入root的目录 及进行管理员的相关操作了

如修改文件,删除文件等

    特别注意: 为了保证安装,在不再使用winscp 时,建议最好改回sudoers 文件的内容或恢复备份文件,并且关闭 群晖 终端机 的 ssh功能  (端口也可改一下)这样保证群晖nas的安全。

查看sftp-server执行文件目录:

  cat /etc/ssh/sshd_config|grep sftp  Subsystem  sftp    /usr/libexec/openssh/sftp-server

编辑/etc/sudoers为特定用户添加执行sftp sudo权限:

  #useradmin  user ALL=NOPASSWD:  /usr/libexec/openssh/sftp-server

后续如果登录失败日记显示:

sorry, you must have a tty to run sudo ; TTY=unknown

需在/etc/sudoers内注释此行:

#Defaults    requiretty

sftp客户端设置登录以sudo权限执行sftp,下图以winscp为例:

sudo /usr/libexec/openssh/sftp-server

此时用winscp登录就是root权限了,对整个系统的文件都拥有控制权!

密钥用于建立SSH互信环境,本地公钥需要分发到远端服务器目录,可实现本地主机到远端SFTP服务器的无访问

1 生成密钥对,取得本地公钥,如:id_dsapub

2 登录到远端SFTP服务器用户HOME目录的ssh文件夹

3 将id_dsapub的内容追加到远端服务器ssh/autorized_keys文件尾部并保存

4 尝试与本地主机用户SFTP到远程服务器: sftp user@server_addr

通常是下面这样的流程:使用 FTP/SFTP 连接到远程服务器 -> 下载要修改的文件 -> 使用 ST2 修改文件 -> 保存然后拖进 FTP 中 -> 刷新网站。

很明显这样的工作流程效率很低,特别是你修改一句代码的时候,为了即时生效,也需要重复切换几个窗口重复这个过程。于是就有了 SFTP 这个插件。

它主要功能就是通过 FTP/SFTP 连接远程服务器并获取文件列表,可以选择下载编辑、重命名、删除等等操作,点下载编辑之后,可以打开这个文件进行修改。修改完成之后,保存一下会自动上传到远程的服务器上面。

使用这个插件之后,工作流程就变成了:使用 SFTP 插件打开文件 -> 使用 ST2 编辑修改文件 -> 保存文件 -> 刷新页面。效率提升了至少一倍以上

FTP出现“数据 Socket 错误: 连接被拒”解决办法 通过FTP连接网站时出现“数据 Socket 错误: 连接被拒 列表错误”,如下图:( `: f) Q, L, U: `" g; L3 C( p' N DDgif (565 KB) 2007-8-27 02:52# |, n8 l" S4 }2 h3 V 出现这个错误的原因一般如下: E% M6 j# Y8 [1, 关闭被动模式;( {, H; o1 z" Q R/ ]7 ~9 n 2, 传输类型:二进制; 1 l5 C, \ Y( D+ G: a http://wwwdiscuznet/usersguide/install_faqhtm ! C2 Y- d# `/ {; e I3, 关闭防火墙7 O6 D4 S, I' r6 `! U 4, 关闭杀毒软件, y9 ~0 |) f H+ v 5, 关闭正在下载的程序,如:迅雷,BT,P2P软件等就是关闭一些占网速与电脑资源的程序" q# Y9 s1 y: w 8 Y7 s1 H) x' z& N现整理解决方法如下:: e" y a, Q! ~- x& ~' n% u w 1)工具:CutFTP32,在如下的菜单目录中设置: 9 b% r2 G; \# N2 e4 Q9 s& i编辑--设置--连接--防火墙--页面中的“PASV模式”,只要将前面的钩去掉就可以了。 8 [) M, V0 L5 a9 ]0 a 7 h% | f4 D2 H" b$ Z) B- x- i2)工具:FlashFXP3114,在如下的菜单目录中设置: m( |7 {1 c+ d5 u1 N 选项--参数设置--连接--页面中的“使用被动模式”,只要将前面的钩去掉就可以了。 2 \5 _7 s3 L- @: _: B& `: h3 r s2 u: J U , Q2 S% _" _/ m经常登录各种FTP服务器,会遇到socket错误,朋友也经常遇到,来问我。偏偏大家使用的是不同的FTP软件,所以,今天我把几种目前常用FTP软件的解决办法告诉大家。 : D( P$ i5 S) T& c( J( ` 8 f- e: o$ [8 k" k B( h: z ★Cute FTP 35英文版:FTP—>Settings—>Options—>Firewall,将“PASV mode”前复选框中的打勾去掉。 6 e0 M9 A/ B" B5 U 3 s' }$ |, _$ O& ^ E ★Cute FTP35中文版:FTP—>设置—>选项—>防火墙,“PASV方式(A)”前复选框中的打勾去掉。 2 |+ P+ O6 Z8 L+ A5 [( A0 }$ R f ★Cute FTP40中文版:右击你所建立的ftp站点—>选择属性(properties)—>去掉"use PASV mod" 选择项7 f l$ @5 n" 7 _ W) p& w 2 f( P3 ~0 \ q2 R& i& [ ★Cute FTP Pro20中文版:编辑—>全局设置—>连接—>连接类型,“PASV/PORT”下拉选项菜单选择PORT。 2 ^% y4 F4 _4 M" P8 k6 {; w1 E& M + L: U, k% f! B2 O# ~6 l7 u+ ~ ★Leap FTP272:Sites—>Site Manager—>Advanced,将“Use PASV mode”前复选框中的打勾去掉。9 E5 a! E d P% k f8 A 2 O" M i& E2 }" Y- ★flashfxp : 选项->参数->代理->去掉“使用被动模式” % U/ R; A4 R/ p$ i 5 d9 U! g: z' x★FlashFXP软件关闭被动模式的方法:# J! @, K, x9 8 V 顶部工具栏--选项--参数设置--连接--使用被动模式勾去掉-OK 3 W V$ ^; g/ h z j) U h( f- N( ]5 w# X0 ^) I+ l★flashget : 选

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 如何配置 ftpsftp 访问远程文件

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情