❶ 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用户。
❷ xshell5怎么上传文件xftp
使用Xshell访问Linux系统的时候,经常需要上传和下载文件,文件传输软件Xftp可以和Xshell很好的结合在一起使用。我们在操作Linux服务器的时候都是先使用Xshell的,然后遇到需要上传或下载文件的时候,再打开Xftp。下面就一起来学习用Xshell关联Xftp传输文件。
关联Xftp传输文件的具体步骤如下:
1.打开Xshell软件,然后连接上Linux服务器,cd命令切换到一个指定的目录。为了演示Xftp关联的效果,这里我们切换到一个测试目录。然后点击如下图所示的Xftp绿色的按钮即可打开软件。
图6:下载文件
以上就是给大家介绍的用Xshell关联Xftp传输文件的方法,关联之后,就可以快速地对服务器进行上传和下载文件,这样就可以提高工作效率。
❸ Xshell本地指令大全
很多软件在使用过程中都有快捷键,当然xshell也有,有因为xshell是一款 安全终端模拟软件 ,所以与普通的软件有丝丝的区别,它的快捷键是以指令形式展现的。
图1:xshell本地指令表现形式
一般来讲,Xshell提示在未连接远程主机的状态下出现在终端屏幕上。连接会话后可按“Ctrl+Alt+]”以转出本地提示。如要返回到远程主机模式输入“exit”或按“Ctrl+D”即可。
可使用如下指令:
|
指令
|
说明
|
| --- | --- |
|
help
?
|
在终端窗口显示指令目录。
|
|
new
|
打开新建会话属性对话框。
|
|
open [ session ]
|
已指定“ session ”时连接到相应会话,未指定时打开会话对话框。
|
|
edit [ session ]
|
已指定“ session ”时打开相应会话的会话属性对话框,未指定时打开默认会话的会话属性对话框。
|
|
list
|
显示当前作业directory可使用的会话相关信息和directory目录。
|
|
cd
|
更改当前作业的directory。
|
|
clear
|
清除画面、地址栏的历史记录、本地Shell命令提示的命令历史记录。
|
|
exit
quit
|
退出Xshell会话或返回到远程主机。
|
|
ssh [ user @] host [ port ]
|
以ssh协议进行连接。
|
|
sftp [ user @] host [ port ]
|
以sftp协议进行连接。
|
|
telnet [ user @] host [ port ]
|
以telnet协议进行连接。
|
|
rlogin [ user @] host [ port ]
|
以rlogin协议进行连接。
|
|
ftp [ user @] host [ port ]
|
以ftp协议进行连接。
|
|
ipconfig
|
执行Windows的ipconfig命令。
|
|
ping host
|
执行Windows的ping命令。
|
|
tracert host
|
显示至host的数据包路径。
|
|
netstat
|
执行Windows의netstat命令。
|
|
nslookup
|
执行Windows의 nslookup 命令。
|
❹ linux定时通过shell脚本利用sftp命令上传文件。需要手动输入密码,用openSSH-clients这个插件可以解决么
Linux系统提供多种不同的Shell以供选择。
常用的有Bourne Shell(简称sh)、C-Shelll(简称csh)、Korn Shell(简称ksh)和Bourne Again Shell (简称bash)。
Bourne Shell是AT&T Bell实验室的 Steven Bourne为AT&T的Unix开发的,它是Unix的默认Shell,也是其它Shell的开发基础。Bourne Shell在编程方面相当优秀,但在处理与用户的交互方面不如其它几种Shell。
C Shell是加州伯克利大学的Bill Joy为BSD Unix开发的,与sh不同,它的语法与C语言很相似。它提供了Bourne Shell所不能处理的用户交互特征,如命令补全、命令别名、历史命令替换等。但是,C Shell与BourneShell并不兼容。
Korn Shell是AT&T Bell实验室的David Korn开发的,它集合了C Shell和Bourne Shell的优点,并且与Bourne Shell向下完全兼容。Korn Shell的效率很高,其命令交互界面和编程交互界面都很好。
Bourne Again Shell (即bash)是自由软件基金会(GNU)开发的一个Shell,它是Linux系统中一个默认的Shell。Bash不但与Bourne Shell兼容,还继承了C Shell、Korn Shell等优点
❺ 如何写一个shell脚本用sftp上传文件
主要步骤如下:1.为运行shell脚本的本地用户生成密钥对
2.将其中的公钥分发到sftp欲登录的远程服务器上
3.编写并以上面的本地用户运行shell脚本
一.生成密钥对
在shell脚本中使用sftp时必须用到密钥对(公钥和私钥).可使用下列方式生成(SSH 2.X版本),这里本地用户记为:local_user:
$ ssh-keygen -dsa
屏幕提示:
Generating public/private dsa key pair.
Enter file in which to save the key (/home/local_user/.ssh/id_dsa):
# 按回车保存为: /home/local_user/.ssh/id_dsa,即当前用户local_user的私钥
Enter passphrase (empty for no passphrase):
# 按回车,表示读取密钥时不需要密钥的密码
Enter same passphrase again:
# 确认密钥的密码,必须和上面的输入相同
Your identification has been saved in /home/local_user/.ssh/id_dsa.
# 私钥保存信息
Your public key has been saved in /home/local_user/.ssh/id_dsa.pub.
# 公钥保存信息
The key fingerprint is:
ec:41:e8:08:38:0b:f8:1e:bc:92:98:32:fc:d7:69:7d ...
# 密钥指纹
二.分发公钥
为了使用密钥,必须将公钥分发到欲登录的远程服务器上,这里远程服务器记为remote_host,欲登录的远程用户记为remote_user
1.公钥到欲登录的远程服务器的远程用户的家目录下,例如:
id_dsa.pub到remote_host:/home/remote_user/.ssh/
若目录/home/remote_user/.ssh/不存在,请先创建之.
2.将来的公钥文件改名为authorized_keys
3.修改公钥文件的访问权限
chmod 644 authorized_keys
三.示例
目标:
从远程服务器remote_host:/home/remote_user/data/
传送下列文件到本地计算机的当前目录: /home/local_user/data/:
20050201
20050202
20050203
20050204
20050205
方式1: 批模式
sftp提供了一个选项-b,用于集中存放sftp命令(该选项主要用于非交互模式的sftp).因此对于上面的目标,可以生成如下的命令文件:
cd /home/remote_user/data/
lcd /home/local_user/data/
-get 20050201 .
-get 20050202 .
-get 20050203 .
-get 20050204 .
-get 20050205 .
quit
这里存为: sftp_cmds.txt
说明: get命令前加一个"-"以防止其执行错误时sftp执行过程被终止.
以下为脚本示例:
#!/bin/sh
sftp -b ./sftp_cmds.txt remote_user@remote_host
方式二:
#!/bin/sh
sftp remote_user@remote_host << EOF
cd /home/remote_user/data/
lcd /home/local_user/data/
-get 20050201 .
-get 20050202 .
-get 20050203 .
-get 20050204 .
-get 20050205 .
quit
EOF
❻ 怎样在SecureCRT的shell里用命令上传下载文件(转)
SecureCRT记住密码的功能容易设置,于是偶这懒人,后来习惯了用SecureCRT,但其上传文件功能偶一直没弄明白过。之前一直用的是pshell,因为pshell有个功能强大的secureftp功能,打开之后,直接将目录或文件拖到此窗口即可。SecureCRT却没有那么方便。 1.在shell里直接使用命令 首先最好设置好本地与远程主机传输文件的目录,因为使用命令下载文件时是不会提示选择下载的目标目录的。 设置方法:本地目录在 选项-》会话选项-》SFTP标签 的本地目录里设置。 目录设置好之后就可以使用命令上传和下载文件了 上传命令:rz rz输入后SecureCRT会打开一个文件选择对话框,供用户选择需上传的文件 下载命令:sz 可用sz -h 查看sz更多选项 用法很简单,但是可惜,使用这两命令不能传输目录,只能是文件。 2.使用SecureCRT的SFTP功能 在已连接的远程主机标签上点击右键选择连接SFTP标签页即可建立SFTP的连接,这是一个使用命令的连接会话不提供图形界面。 目录转换:远程主机上: 可以使用所有shell中的目录和文件操作命令:ls,pwd,cd等等来对 远程主机上的目录进行更改操作,不能使用vi等文件编辑工具 本地主机上:对本地目录进行操作需在以上命令前加上"l",即 ls-》lls,pwd-》lpwd,cd-》lcd文件传输上传文件: put file 上传目录:put -r dir 下载文件: get file 下载目录:get -r dir 注:这里file可以使用*等通配符 如果是通过通道机登录的某远程主机,则SFTP就不可用了。例如通过10.10.20.124登录的60.25.21.148,操作是在60.25.21.148上,直接右键建立SFTP连接是建立不起来的,因此只能使用上面的sz和rz的命令操作。