PHP世纪论坛

 找回密码
 立即注册
搜索
查看: 322|回复: 0

putty使用来解析用SSH来传输文件

[复制链接]

234

主题

240

帖子

1074

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1074
发表于 2015-12-28 23:15:13 | 显示全部楼层 |阅读模式
前一篇文章在putty使用中的几个常识里就知道了putty利用SSH传输文件,它需要两个工具PSCP和SFTP 。下面就从实例来看看。
实验前应先将PSCP.exe和PSFTP.exe文件复制到相应的路径下,如system32文件夹里,system32文件夹在哪里?这是你的问题了!也可以直接添加路径,我的电脑属性-> 高级-> 环境变量(N),在path里设置即可。
1.PSCP 的使用
在控制台直接执行pscp 可以看到帮助
C:\>pscp
。。。。。。
Usage: pscp [options] [user@]host:source target
       pscp [options] source [source...] [user@]host:target
       pscp [options] -ls [user@]host:filespec
。。。。。。
PSCP常用的几个选项说一下:
-q 安静模式,传输文件时什么也不显示,否则会显示出文件的传输进度,默认是关闭的
-P port 指定服务器的SSH 端口,注意这个是大写字母P,默认是-P 22,如果主机的SSH 端口就是22,就不用指定了
-l user 指定以哪个用户的身份登录主机,如果没有指定,则PSCP 会在PuTTY 保存的同名Session 中获得默认的用户名称。用户名称也可以和主机名称写在一起,用@ 分割开,比如:username@server
-pw passwd 指定登录时所用的口令为passwd
-i keyfile 就是指定登录时所用的密钥文件
最后面指定的主机名也可以是PuTTY 中保存的Session 名称。比如我们在PuTTY 中保存了一个名为foobarserver 的会话,而我们所在的网络又的确没有名为foobarserver 的主机名称。而在这个foobarserver 会话中保存的主机名称是demo-server,保存的自动登录的用户是kpl。那么用命令
pscp c:\autoexec.bat foobarserver:backup/
就把本地的c:\autoexec.bat 复制到了主机demo-server 上的用户kpl 所在的主目录下的backup 子目录中(这个路径可能是/home/kpl/backup)
PSCP 大致用法的例子就是:
pscp -P 22 -i c:\path\your-private-key.ppk -C username@server:/remote/path/
下面还是用一些实例来说明会比较简单一些:
把本地的C:\path\foo.txt 复制到远程主机192.168.6.200 的/tmp 目录下
pscp c:\path\foo.txt 192.168.6.200:/tmp
把本地的C:\path\foo.txt 复制到主机192.168.6.200 的/tmp 目录下,但是以主机上的用户kpl 的权限执行
pscp c:\path\foo.txt kpl@192.168.6.200:/tmp
或者是
pscp -l kpl c:\path\foo.txt 192.168.6.200:/tmp
把本地的C:\path\foo.txt 传送到主机192.168.6.200 的/tmp 目录下,但是主机的SSH 端口是3122
pscp -P 3122 c:\path\foo.txt 192.168.6.200:/tmp
把本地的C:\path\foo.txt 复制到主机192.168.6.200 的用户kpl 的主目录下
pscp c:\path\foo.txt kpl@192.168.6.200:.
把主机192.168.6.200 上的用户kpl 主目录下的所有*.tgz 文件拷贝到本地的c:\backup 目录中,如果SSH 版本是SSH v1,那这个命令就会出错。
pscp kpl@192.168.6.200:*.tgz c:\backup
2.再来看看PSFTP
在控制台执行命令psftp -h,可以得到psftp 的帮助
C:\>psftp -h
Usage: psftp [options] [user@]host
。。。。。。
用法与PSCP 大同小异,后面用主机名的时候,与PSCP 一样直接用上会话名称就可以了。
用PSFTP 登录到服务器上以后,操作与FTP 差不多,这里简单的说一下吧:
open 登录主机
open [username@]<sessname|hostname|ip> [port]
比如:
open kpl@demo-server 3022
就是以用户kpl 的身份,登陆到主机demo-server 上,SSH 端口是3022
open demo-server
登陆demo-server,这里的demo-server 可以是PuTTY 中已经保存的会话名称,也可以是主机的名称,如果主机名称与会话名称相同,以会话名称为准。
close 关闭SFTP 连接
这个没啥说的,close 就关闭了SFTP 连接
quit 结束本次的SFTP 会话
也没啥用法,就是关闭了PSFTP 这个程序
help [command] 帮助
直接打help 就可以看到帮助指令,后面指定上一个命令就可以查看该命令的帮助,比如:help open
cd [directory] 改变当前目录
pwd 察看当前目录
lcd [directory] 改变本地目录
lpwd 察看本地当前目录
get [-r] <filename|directory> 从服务器下载一个文件/目录,这个命令不能用通配符,参数-r 可以递归下载整个目录
put [-r] <filename|directory> [dest] 把文件/目录上传到服务器,这个命令不能用通配符,参数-r 可以递归上传整个目录
mget [-r] <filename|directory> 从服务器下载一批文件/目录,可以用通配符,-r 的含义与get 一样
mget [-r] <filename|directory> [dest] 把一批文件/目录上传到服务器,可以用通配符,-r 的含义与put 一样
reget [-r] <filename|directory> 从服务器续传下载一个文件/目录,这个命令不能用通配符,-r 的含义与get 一样
reput [-r] <filename|directory> [dest] 把一批文件/目录续传上传到服务器,这个命令不能用通配符,-r 的含义与put 一样
dir [directory] 列目录
ls 和dir 一样
chmod [file|directory] 改变文件的权限,与Unix 的chmod 命令类似
del <filename> 删除文件,要注意的是del 只能删除文件
rm 与del 一样
mkdir <new-directory-name> 创建一个目录
rmdir <directory> 删除一个空目录,只有空目录才可以被删除
mv <source-file|source-directory> <dest-file|dest-directory> 改名/移动。如果源和目的都是文件或目录,则是改名。如果目的是目录的话,则是移动。
! 在本地命令前加一个感叹号,就可以直接执行

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|PHP世纪论坛 ( 豫ICP备15004666号-2 )

GMT+8, 2018-4-19 19:24

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表