Ⅰ 怎么开启linux服务器的sftp服务
可以按照如下方式进行设置:
1、创建sftp组,groupaddsftp,创建完成之后使用cat /etc/group命令组的信息。
1、sftp是Secure File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的网络的加密方法。sftp 与 ftp 有着几乎一样的语法和功能。SFTP 为 SSH的其中一部分,是一种传输档案至 Blogger 伺服器的安全方式。
2、其实在SSH软件包中,已经包含了一个叫作SFTP(Secure File Transfer Protocol)的安全文件信息传输子系统,SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接和答复操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。
Ⅱ 服务器把ssh的端口号改了,在linux终端怎么用sftp连接
从技术角度来分析,几个要求:
1、从安全方面看,sftp会更安全一点
2、线上服务器提供在线服务,对用户需要控制,只能让用户在自己的home目录下活动
3、用户只能使用sftp,不能ssh到机器进行操作
提供sftp服务,可以用系统自带的internal-sftp,也可以使用vsftpd,这里需求不多,直接选用internal-sftp。
限制用户只能在自己的home目录下活动,这里需要使用到chroot,openssh 4.8p1以后都支持chroot,我现在用的是CentOS 6.3,自带的openssh已经是5.3p1,足够了。
可以输入:
# ssh -V
来查看openssh的版本,如果低于4.8p1,需要自行升级安装,不在这里具体介绍了。
假设,有一个名为sftp的组,这个组中的用户只能使用sftp,不能使用ssh,且sftp登录后只能在自己的home目录下活动
1、创建sftp组
# groupadd sftp
2、创建一个sftp用户,名为mysftp
# useradd -g sftp -s /bin/false mysftp
# passwd mysftp
3、sftp组的用户的home目录统一指定到/data/sftp下,按用户名区分,这里先新建一个mysftp目录,然后指定mysftp的home为/data/sftp/mysftp
# mkdir -p /data/sftp/mysftp
# usermod -d /data/sftp/mysftp mysftp
4、配置sshd_config
编辑 /etc/ssh/sshd_config
# vim +132 /etc/ssh/sshd_config
找到如下这行,并注释掉
Subsystem sftp /usr/libexec/openssh/sftp-server
添加如下几行
Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory /data/sftp/%u
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
解释一下添加的几行的意思
Subsystem sftp internal-sftp
这行指定使用sftp服务使用系统自带的internal-sftp
Match Group sftp
这行用来匹配sftp组的用户,如果要匹配多个组,多个组之间用逗号分割
当然,也可以匹配用户
Match User mysftp
这样就可以匹配用户了,多个用户名之间也是用逗号分割,但我们这里按组匹配更灵活和方便
ChrootDirectory /data/sftp/%u
用chroot将用户的根目录指定到/data/sftp/%u,%u代表用户名,这样用户就只能在/data/sftp/%u下活动,chroot的含义,可以参考这里:http://www.ibm.com/developerworks/cn/linux/l-cn-chroot/
ForceCommand internal-sftp
指定sftp命令
AllowTcpForwarding no
X11Forwarding no
这两行,如果不希望该用户能使用端口转发的话就加上,否则删掉
5、设定Chroot目录权限
# chown root:sftp /data/sftp/mysftp
# chmod 755 /data/sftp/mysftp
错误的目录权限设定会导致在log中出现”fatal: bad ownership or modes for chroot directory XXXXXX”的内容
目录的权限设定有两个要点:
1、由ChrootDirectory指定的目录开始一直往上到系统根目录为止的目录拥有者都只能是root
2、由ChrootDirectory指定的目录开始一直往上到系统根目录为止都不可以具有群组写入权限
所以遵循以上两个原则
1)我们将/data/sftp/mysftp的所有者设置为了root,所有组设置为sftp
2)我们将/data/sftp/mysftp的权限设置为755,所有者root有写入权限,而所有组sftp无写入权限
6、建立SFTP用户登入后可写入的目录
照上面设置后,在重启sshd服务后,用户mysftp已经可以登录,但使用chroot指定根目录后,根应该是无法写入的,所以要新建一个目录供mysftp上传文件。这个目录所有者为mysftp,所有组为sftp,所有者有写入权限,而所有组无写入权限
# mkdir /data/sftp/mysftp/upload
# chown mysftp:sftp /data/sftp/mysftp/upload
# chmod 755 /data/sftp/mysftp/upload
7、重启sshd服务
# service sshd restart
到这里,mysftp已经可以通过sftp客户端登录并可以上传文件到upload目录。
如果还是不能在此目录下上传文件,提示没有权限,检查SElinux是否关闭,可以使用如下指令关闭SElinux
关于Linux命令的介绍,看看《linux就该这么学》,具体关于这一章地址3w(dot)linuxprobe/chapter-02(dot)html
修改/etc/selinux/config文件中的SELINUX="" 为 disabled ,然后重启。或者
# setenforce 0
Ⅲ linux下 如何写一个shell 使用sftp发送文件到指定服务器 每次要手工输入
你可以试试下面的方法,把sftp内的操作都写回到EOF里面答
sftp -oPort=$PORT $USERNAME@$IP <<EOF
cd $FTP2DIR
mkdir $DATA_DATE
cd $DATA_DATE
put $EXPORT_LOCAL_DIR/$data_file_name
put $EXPORT_LOCAL_DIR/$verf_file_name
exit
close
bye
EOF
Ⅳ Linux 从A用sftp连接B
Linux 从A用sftp连接B的命令是:sftp -oPort=60001 [email protected]。使用-o选项来指定端口号。-oPort=远程端口号sftp> get /var/www/fuyatao/index.php /home/fuyatao/。这条语句将从远程主机的 /var/www/fuyatao/目录下将 index.php。
然后下载到本地 /home/fuyatao/目录下。
sftp> put /home/fuyatao/downloads/Linuxgl.pdf/var/www/fuyatao/
这条语句将把本地 /home/fuyatao/downloads/目录下的 linuxgl.pdf文件上传至远程主机/var/www/fuyatao/ 目录下。
linuxftp远程连接命令是:
1. 连接ftp服务器:格式:ftp [hostname| ip-address]在linux命令行下输入:ftp 192.168.26.66
服务器询问你用户名和口令,分别输入用户名和相应密码,待认证通过即可。
2、下载文件:下载文件通常用get和mget这两条命令。a) get格式:get [remote-file] [local-file]
将文件从远端主机中传送至本地主机中。
3、上传文件:a) put格式:put local-file [remote-file],将本地一个文件传送至远端主机中。
4、断开连接:bye:中断与服务器的连接。ftp> bye (回车)。
Ⅳ linux下如何使用sftp命令。
回车提示输入密码。进入提示符sftp>如果登陆远程机器不是为了上传下载文件,而是要修改远程主机上的某些文件。可以
ssh [email protected] (其实sftp就是ssh 的一个程式。)
sftp> get /var/www/fuyatao/index.php /home/fuyatao/
这条语句将从远程主机的 /var/www/fuyatao/目录下将 index.php 下载到本地 /home/fuyatao/目录下。
sftp> put /home/fuyatao/downloads/Linuxgl.pdf /var/www/fuyatao/
这条语句将把本地 /home/fuyatao/downloads/目录下的 linuxgl.pdf文件上传至远程主机/var/www/fuyatao/ 目录下。
改变路径可以用cd ,改变本机路径可以用 lcd;
ls rm rmdir mkdir 这些命令都可以使用。同理调用本机都是加 l , 即 lls lrm.
要离开sftp,用exit 或quit、 bye 均可。详细情况可以查阅 man sftp.
如果觉得在命令行模式下不太方便,可以 sudo apt-get install gftp。在图形界面下操作就简便多了。
Ⅵ 想问一下linux下想要使用sftp,需要做什么配置吗还是linux下已经默认安装配置好了
装上 sshd 后台服务程序就可以对 shell用户提供sftp服务了.
没有限制目录访问什么的.
如果有其它的特殊要求.好像还比较难设置.我不是特别清楚.
sftp是sshd里的一个 subsystem. 默认应该是包含,可以改设置文件禁止它.
Ⅶ sftpsftp命令
1、SFTP 和FTPS的区别2、SFTP 怎么往服务器上上传整个文件夹?3、sftp和ftp的区别是什么?4、SFTP命令5、怎么开启linux服务器的sftp服务6、linux scp、ftp和sftp有什么区别,传输文件那个速度快SFTP和FTPS的区别如下:
1、指代上的区别
(1)FTPS:是TCP / IP协议组中的协议之一。
(2)SFTP:安全文件传输协议。可以提供一种安全的网络加密方法来传输文件。
2、特点上的区别
(1)FTPS:FTPS协议使用两个端口20和21,其中TCP用于传输数据,而21用于传输控制信息。
(2)SFTP:SFTP本身没有单独的守护程序,必须使用sshd守护程序(默认端口号为22)来完成相应的连接和答复操作,因此从某种意义上讲物悄,SFTP并不像服务器程序,并且更像是一个客户端程序。
3、使用方式上的区别
(1)FTPS:FTPS服务器用于存储文件。用户可以使用FTPS客户端通过FTPS协议访问位于FTPS服务器上的资源。
(2)SFTP:SSH的一部分,是一种将文件传输到Blogger服务器的安全方法。
使用SecureSRT中的SFTP传递文件夹时sftp,有个小细节值得注意一下sftp:
1)在文件夹名dirname后加上'/',传输后,目标位置没有新建文件夹dirname,只有dirname文件夹下的各个文件。
如:
sftp get -r smsrc/
2)在文件夹名dirname后不加'/',传输后,目标位置新建文件夹dirname,所有文件位置新建文件夹dirname下。
如:
sftp get -r smsrc
第一、FTP协议
FTP是TCP/IP协议组中sftp的协议之一,TP协议由两个部分组成:1、FTP服务器,用来存储文件;2、FTP客户端,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上sftp的资源。
默认情况下FTP协议使用TCP端口中的20和21这两个端口。21端口用于传输控制信息,而是否使用20作为传输数据的端口与FTP使用的传输模式有关,如果采用被动模式则具体使用哪个端口要服务器端和客户端协商决定。FTP传输模式分为两种:
①主动模式
FTP客户端首先和FTP服务器的TCP21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。PROT命令包含了客户端用什么端口接收数据。在传输数据的时候,服务器端通过自己的TCP
20端口连接至客户端的指定端口发送数据。
②被动模式
在建立控制通道与主动模式相似,但建立连接后是Pasv命令。FTP服务器收到Pasv命令后便随机打开一个高端端口并且通知客户端在这个端口上传送数据的请求,客户端连接FTP服务器此端口,通过三次握手建立通道,然后FTP服务器将通过这个端口进行数据的传送。
第二、SFTP协议
SFTP是SSH File Transfer
Protocol的缩写,安全文件传送协议。SFTP与FTP有着几乎一样的语法和功能。SFTP为SSH的其中一部分,是一种传输档案至Blogger伺服器的安全方式。其实在SSH软件包含中,已经包含了一个叫作SFTP的安全文件信息传输子系统,SFTP本身没有单独的守护进程,它必须使用sshd守护进程来完成相应的明蚂简连接和答复操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。
第三、二者的主要区别
链接方式:FTP使用TCP端口21上的控制连接建立连接。而SFTP是在客户端和服务器之间通过SSH协议建立的安全连接来传输文件。
安全性:SFTP使用加密传输认证信息和传输的数据,所以使用SFTP相对于FTP是非常安全。
效率:SFTP这种传输方式使用了加密解密技术,所以传输效激裤率比普通的FTP要低很多。
SFTP是SSH File Transfer Protocolsftp的缩写sftp,安全文件传送协议。SFTP与FTP有着几乎一样的语法和功能。SFTP为SSH的其中一部分sftp,是一种传输档案至 Blogger 伺服器的安全方式。其实在SSH软件包中,已经包含sftp了一个叫作SFTP的安全文件信息传输子系统,SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接和答复操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。
sftp HostIP ------默认用户登录
sftp user@HostIP------指定用户'user'登录
之后会提示输入用户密码验证,验证成功后即登录成功,可进行命令操作.
命令 ? 可以查看命令帮助信息,如下
可以按照如下方式进行设置:
1、创建sftp组sftp,groupadd sftpsftp,创建完成之后使用cat /etc/group命令组的信息。
2、创建一个sftp用户mysftp并加入到创建的sftp组中sftp,同时修改mysftp用户的密码sftp,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了一个叫作SFTP(Secure File Transfer Protocol)的安全文件信息传输子系统,SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接和答复操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。
传输文件使用ftp协议速度快。
区别如下:
一、指代不同
1、scp:是用来进行远程文件拷贝的sftp,是 SSH 中最方便有用的命令。
2、ftp: 是 TCP/IP 协议组中的协议之一。
3、sftp:安全文件传送协议。可以为传输文件提供一种安全的网络的加密方法。
二、使用方式不同
1、scp:scp 在需要进行验证时会要求sftp你输入密码或口令。
2、ftp:FTP服务器用来存储文件sftp,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。
3、sftp:为 SSH的其中一部分sftp,是一种传输档案至 Blogger 伺服器的安全方式。
三、特点不同
1、scp:数据传输使用 ssh,并且和ssh 使用相同的认证方式,提供相同的安全保证 。
2、ftp:下FTP协议使用TCP端口中的 20和21这两个端口,其中20用于传输数据,21用于传输控制信息。
3、sftp:SFTP本身没有单独的守护进程,必须使用sshd守护进程(端口号默认是22)来完成相应的连接和答复操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。
Ⅷ linux的sftp命令
linux下sftp命令很多人都只是了解了语法却不知道具体用法,下面由我为大家整理了linux下sftp命令的相关知识,希望对大家有帮助!
linux的sftp命令
1.常用登陆方式:
格式:sftp 《user》@《host》
通过sftp连接《host》,端口为默认的22,指定用户《user》。
2.查看sftp支持的命令
使用help命令,查看支持的命令,如:
sftp》help
(其中命令前面有“l”表示本地执行,其他表示在所登录的远程主机上面执行)
3.基本的使用
sftp主要是用来传输文件的,包括上传文件(从本机到远程主机) ,下载文件(从远程主机到本机)。
(1)文件下载
get [-Ppr] remote [local]
如:get test.cpp 。/Project/
将远程当前目录下的文件test.cpp下载到本地当前目录的Project文件夹中。
(2)文件上传
put [-Ppr] local [remote]
如:put /home/liu/Software/RHEL_5.5 x86_64.iso /home/xudong/Blog/
将本地/home/liu/Software/目录下的ios文件传送到远程登陆主机的/home/xudong/Blog/目录下。
(3)其他命令
可以使用命令还是有几个的,如ls、lls;cd、lcd;pwd、lpwd等。具体查看help输出吧。
sftp就是secure file transfer program,它基于ssh,用它在两个Linux系统间传递文档非常方便。
要使用sftp传递文档,首先应该在服务器端打开ssh服务,如果没有打开,一般可以通过下面的命令打开:
# /etc/init.d/sshd start
然后就可以在客户端通过sftp登录服务器端进行文档传递操作,如下:
$ sftp [-oPort=port_number] username@server_ip[:file1 file2 。。。]
补充:Linux的sftp命令的参数说明
-o 用来向ssh传递参数,比如-oPort=222,会告诉ssh使用连接服务器的222端口,而不是默认的22端口。这个在遇到服务器端把ssh服务默认的22号端口改变的情况时会有用。
后面的file1、file2代表文件名,也可以是一个目录。在没有指定文件时会打开一个交互界面,在交互界面下可以通过命令来传递文档。
如:
$ sftp -o port = 222 [email protected]
Linux的sftp命令的命令说明
在sftp命令的交互界面下,有很多命令可以用,比如:cd、ls、pwd、bye、chmod、chgrp、chown、df、get、help、mkdir等等。当然这些命令都是针对服务器端的操作,其中一些命令在加l前缀的情况下可以实现在本地下的操作。比如,lpwd命令会打印本地当前工作目录(即连接sftp前的当前工作目录)。这些命令中有两个是用来交换文档的,它们是get和put命令,如下:
》 put local_path [remote_path]
》 get remote_path [lcoal_path]
put 命令会把本地文件或目录“推”到服务器端;get命令则把服务器端文件或目录“拉”下来。
上面就是Linux使用sftp命令传输文件相关介绍了,相较于ftp而已,sftp命令传输文件更加安全,推荐使用sftp命令传文件。