回车提示输入密码。进入提示符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/centos普通用户sudo开启sftp
一般情况下,从安全考虑,root是禁止ssh登录,普通用户通过sudo操作,一般都没问题,但是要通过ftp传输文件就麻烦了,文件是属于root用户的,普通用户即使等登录也不能更改文件,也要加上sudo命令才能更改文件,通过winscp软件可以实现实现这个功能,详细配置查看这个帖子:
http://blog.csdn.net/xuejinliang/article/details/52301349
配置图1(http://upload-images.jianshu.io/upload_images/3727878-911d343f96035822.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
配置-高级-SFTP sudo /usr/libexec/openssh/sftp-server
配置图2(http://upload-images.jianshu.io/upload_images/3727878-52fa5c95dcc9d859.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
配置-高级-Shell sudo -i
附加背景知识:
https://en.wikibooks.org/wiki/OpenSSH/Cookbook/File_Transfer_with_SFTP
在主流linux系统版本当中,默认都有安装openssl和openssh包,都有ssh命令,也就是说默认安装好了SFTP服务器和sftp命令,不需要额外配置vsftp。
sftp有两种实现
1.sftp-server默认实现
2.internal-sftp可更改用户对应的目录
本来考虑不用sudo,而是通过internal-sftp来实现,把普通用户加入到root用户组,把文件的root用户组权限加上写的权限来实现的,后来发现没用,
因为目录权限设置要遵循2点:
ChrootDirectory设置的目录权限及其所有的上级文件夹权限,属主和属组必须是root;
ChrootDirectory设置的目录权限及其所有的上级文件夹权限,只有属主能拥有写权限,权限最大设置只能是755。
如果不能遵循以上2点,即使是该目录仅属于某个用户,也可能会影响到所有的SFTP用户。
❸ 如何在linux下配置ssh和sftp使用不同的端口号
1、两个deamon
要实现ssh和sftp分离,分别监听不同的端口,可以通过创建两个‘/usr/sbin/sshd’后台程序,一个监听22端口(ssh),一个监听20022端口(sftp),为了区分ssh和sftp服务的后台程序,这里将ssh服务的后台程序保持为/usr/sbin/sshd,而将sftp服务的后台程序改为/usr/sbin/sftpd。/usr/sbin/sftpd是/usr/sbin/sshd的一个链接,其内容完全相同(ln
-sf /usr/sbin/sshd /usr/sbin/sftpd)。
2、两个service
SLES12使用systemd管理系统服务,ssh服务对应/usr/lib/systemd/system/sshd.service文件,实现sftp服务时可以将/usr/lib/systemd/system/sshd.service
复制到
/etc/systemd/system/sftpd.service,然后修改sftpd.service文件内容。(使用修改好的sftpd.service文件即可)
3、其他文件
系统的ssh服务是通过安装openssh实现的,可以通过rpm -ql openssh查看该rpm包含哪些文件。总结实现ssh和sftp分离的相关的文件有:
ssh服务 sftp服务
/usr/lib/systemd/system/sshd.service /etc/systemd/system/sftpd.service
(通过修改/usr/lib/systemd/system/sshd.service文件得到)
/etc/pam.d/sshd /etc/pam.d/sftpd (通过复制 /etc/pam.d/sshd文件得到)
/etc/ssh/sshd_config /etc/ssh/sftpd_config (通过复制/etc/ssh/sshd_config文件得到)
/usr/sbin/rcsshd /usr/sbin/rcsftpd (ln -sf /usr/sbin/service /usr/sbin/rcsftpd)
/usr/sbin/sshd /usr/sbin/sftpd (ln -sf /usr/sbin/sshd /usr/sbin/sftpd)
/etc/sysconfig/ssh /etc/sysconfig/sftp (通过修改/etc/sysconfig/ssh文件得到)
至此,我们已经实现了两个服务。
但是,ssh服务和sftp服务并没有真正的分离,此时已然可以通过22号端口使用ssh服务和sftp服务,而新开的20022端口也可以使用ssh服务(ssh
-p 20022 username@serverip )和sftp服务(sftp -o Port=20022
username@serverip )。
4、关闭22号端口下的sftp服务
编辑/usr/sbin/sshd的配置文件/etc/ssh/sshd_config文件,将Subsystem参数注释掉,然后重启sshd
同时也可以设置可访问22号端口的用户白名单:
编辑/etc/ssh/sshd_config文件,设置AllowGroups参数(假设设置为AllowGroups sshonly),限制仅AllowGroups组内的用户可通过22号端口ssh登录系统(对于需要ssh登录系统的用户可通过usermod -A sshonly <username>将其加入到AllowGroups组内)
5、“关闭20022号端口下的ssh服务”
sftp作为一个子服务,它的开启依赖于ssh服务,因此不能从本质上关闭ssh服务而只开启sftp服务。
可以用以下方式来规避:
/usr/sbin/sftpd的配置文件/etc/ssh/sftpd_config中包含Subsystem参数配置(推荐使用Subsystem sftp internal-sftp -l INFO -f AUTH)
/etc/ssh/sftpd_config中包含AllowGroups参数(假设为AllowGroups sftponly),限制仅AllowGroups组内的用户可以访问20022端口
将AllowGroups组内的用户的shell改为/bin/false(usermod -s /bin/false <username>),使AllowGroups组内的用户仅能sftp登录系统(如果一个用户即需要ssh,又需要sftp,则不能将其shell改为/bin/false)
6、用户白名单配置
配置之后,需将系统内需要ssh访问系统的用户加入到sshonly组内,需将系统内需要sftp访问系统的用户加入到sftponly组,同时需要ssh和sftp的用户则sshonly和sftponly组都要加入。
7、 重启ssh服务和sftp服务,并设置开机启动
service sshd restart
service sftpd restart
❹ Linux系统如何关闭scp和sftp命令
sftp是Secure File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的加密方法。sftp 与 ftp 有着几乎一样的语法和功能。接下来是我为大家收集的Linux系统如何关闭scp和sftp命令,欢迎大家阅读:
Linux系统如何关闭scp和sftp命令
系统:centos 5.x
1.先禁止scp
rpm -qa|grep openssh-*
yum remove openssh-clients -y
删除了openssh-clients后,再执行scp,就会报下面的错误:
-bash: scp: command not found
2.禁止sftp
vi /etc/ssh/sshd_config
Subsystem sftp /usr/libexec/openssh/sftp-server
把这行注释了,如下:
#Subsystem sftp /usr/libexec/openssh/sftp-server
退出保存后,重启sshd:
service sshd restart
以上就是Linux系统中禁止scp和sftp命令的方法了。有需要或者是有兴趣的用户,可以在自己的电脑上尝试操作一下。
看了“Linux系统如何关闭scp和sftp命令”还想看:
1. linux系统中scp命令怎么使用
2. 怎么利用scp命令来实现linux系统之间互传文件
3. Linux scp命令怎么使用
4. Linux怎么设置用户通过SFTP访问目录的权限
5. linux下scp远程拷贝怎么使用
6. linux scp怎么远程拷贝文件
❺ 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命令传文件。
❻ Linux下如何进行SFTP用户权限设置
1、打开Linux文件查看有哪些权限。
注意事项:
Linux用户分三种,超级用户,普通用户,伪用户,超级用户拥有所有权限,伪用户一般和进程相关,无需登录系统,所以常说的管理用户权限指的是管理Linux中普通用户的权限。