Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1890541
  • 博文数量: 389
  • 博客积分: 7877
  • 博客等级: 少将
  • 技术积分: 4521
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-10 14:02
文章分类

全部博文(389)

文章存档

2024年(1)

2022年(1)

2021年(1)

2020年(1)

2019年(1)

2018年(3)

2017年(6)

2016年(4)

2015年(8)

2014年(15)

2013年(31)

2012年(19)

2011年(47)

2010年(33)

2009年(105)

2008年(109)

2007年(4)

分类: LINUX

2009-03-05 10:03:18

sftp 是什么,端口,进程,启停,在shell中的使用举例
与ftp的区别,通常我们在Linux上面用vsftp 对应比较...待续

在两台Linux之间使用sftp来传文件, 在客户端生成一个授权文件,并将它通过ftp上传到目标服务器上的/root/.ssh/authorized_keys (在客户端通过ssh-keygen -d生成authorized_keys文件)

这样,客户端可以使用如下脚本将服务器上的文件下载到本地,或者将本地的文件上传至目标服务器:

在客户端上:
只需要生成一次授权文件即可,还可以再给这个授权链接设置密码,这样的话在建立这个链接之前要求输入密码,如果密码不对则无法建立好一个安全的链接, 这个客户端要连接哪个服务器就把id_dsa.pub放到那个服务器的/$HOME/.ssh/ 下面,并将文件改名为authorized_keys, 这样就可以从客户端直接使用sftp连接到服务器上,不需要输入服务器上的用户名和密码,且在服务器更改了用户的密码也照样可以。
(在客户端上一般仅执行"ssh-keygen -d"一次,以便生成公钥id_dsa.pub和私钥id_dsa 然后需ssh/sftp到哪台服务器就将id_dsa.pub的内容拷贝到那台服务器上的$HOME/.ssh/authorized_keys文件里面,这地方需要注意不同的用户)

在服务器上:
因为服务器上面可能会有来自不同客户端的连接,所以需要把各个客户端上的授权文件都写到authorized_keys里面,可以简单的通过如下命令将来自客户端的授权文件写到authorized_keys里面:
#cat id_dsa.pub |tee -a authorized_keys

在配置好了上述认证之后可以在脚本里面使用sftp来传输文件了,下面是一个脚本:
#!/bin/sh
sftp root@192.168.1.1 << EOF
cd /tmp
get Source.large
quit
EOF

因为使用sftp可以将把要传输的数据进行压缩,但是默认情况下是没有配置的,有如下办法可以使用:
#sftp -C 192.168.1.1

#sftp -o Compression=yes 192.168.1.1

或者,在/$HOME/.ssh/下面新建一个ssh的配置文件,ssh_config 配置内容如下
Compression yes
CompressionLevel 2

如果同样的配置写在/etc/ssh/ssh_config 那么它的作用范围则是整个系统所有用户在sftp到其他Server上去抓数据时都将数据进行压缩然后再下载、上传!
阅读(2287) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~