SSH SCP(不同服务器间的文件拷贝)

SSH提供了一些命令和shell用来登录远程服务器。在默认情况下它不允许你拷贝文件,但是还是提供了一个"scp"命令。
假定你想把本地计算机当前目录下的一个名为"wuyang"的文件拷贝到远程服务器192.168.0.2上你的家目录下。而且你在远程服务器上的帐号名为"root"。可以用这个命令:
scp wuyang root@192.168.0.2

把文件拷贝回来用这个命令:
scp root@192.168.0.2:wuyang

关于scp命令
scp命令是SSH中最方便有用的命令了,试想,在两台服务器之间直接
传送文件,仅仅用scp一个命令就完全解决了。 你可以在一台服务器上
以root身份运行#scp servername:/home/ftp/pub/file1 这样就把另
一台服务器上的文件/home/ftp/pub/file1直接传到本机器的当前目录下,
当然你也可以用#scp /tmp/file2 servername:/boot 把本机上的文件
/tmp/file2送到另一台机器的/boot目录下。而且整个传送过程仍然是
用SSH加密的。

 -----------------------------------

scp localfile user@server:path
scp locathost_path/filename username@remotehost:remotehost_path/filename

 -------------------------------------
ssh工具scp使用示例

关键词: ssh                                          

ssh
ssh(Secure Shell)是用来登录远程计算机和在远程计算机上执行命令的程序。它是用来替代rlogin和rsh,以及在不安全的网络环境下在两台计算机之间提供安全和加密的信息交流。X11连接和TCP/IP端口可以被转发到一个安全的通道里。
用下面的命令,登录远程计算机:
[root@deep]# ssh <login_name> <hostname>
例如:
[root@deep]# ssh username www.openarch.com
username@deep.openarch.com’s password:
Last login: Tue Oct 19 1999 18:13:00 -0400 from gate.openarch.com
Welcome to www.openarch.com on Deepforest.
<login_name>是用来登录ssh服务器的用户名,<hostname>是ssh服务器主机的地址。
scp
可以用这个命令把文件从本地计算机拷贝到远程计算机,或者反之,甚至可以在两台远程计算机之间用“scp”命令拷贝文件。把远程主机上的文件拷贝到当前目录的一个简单的方法如下。
用下面的命令把文件从远程主机拷贝到本地主机上:
[root@deep /]# su admin
[admin@deep /]$ scp -p <login_name@hostname>:/dir/for/file localdir/to/filelocation
例如:
[username@deep]$ scp -p username@mail:/etc/test1 /tmp
Enter passphrase for RSA key 'username@mail.openarch.com':
test1 | 2 KB | 2.0 kB/s | ETA: 00:00:00 | 100%
用下面的命令把文件从本地主机拷贝到远程主机上:
[root@deep /]# su admin
[admin@deep /]$ scp -p localdir/to/filelocation <username@hostname>:/dir/for/file
例如:
[username@deep]$ scp -p /usr/bin/test2 username@mail:/var/tmp
username@mail's password:
test2 | 7 KB | 7.9 kB/s | ETA: 00:00:00 | 100%
注意:“-p”选项表示文件的改变和访问时间属性以及权限,在拷贝过程中被保留。通常是需要这样的。

scp -P port -r(如果是拷贝目录的话) user1@host1:/path/source_file[dir]  user@dest_host:/path/to/copy

### 不同服务器间使用SCP进行文件传输 #### SCP命令基本语法 为了实现不同服务器之间的文件传输,可以利用SCP(Secure Copy Protocol),该协议基于SSH协议提供了一种简单而安全的方式来进行文件拷贝SCP命令的基本格式为 `scp [选项] [源文件] [目的地址]:[目标文件路径]`[^5]。 对于跨服务器间文件传送而言,具体的操作方式取决于数据流动的方向是从本地至远程还是相反方向: - **从本地到远程** 当意图将本地计算机上的某个特定文档发送给另一台机器时,则需指定完整的远端登录信息作为接收方的位置参数。例如,如果想把当前目录下的名为example.txt的文本档上传至IP地址为192.168.0.1的目标主机/home/user/位置处,那么应该执行这样的指令: ```bash scp ./example.txt user@192.168.0.1:/home/user/ ``` - **从远程下载到本地** 反之亦然,若是要获取位于远方设备中的资源并保存于个人PC之中的话,只需调整上述语句顺序即可达成目的。比如要取回前述实例里提到的那个用户的家目录里的example_copy.txt回到自己的桌面,可采用下面这条命令完成任务: ```bash scp user@192.168.0.1:/home/user/example_copy.txt ~/Desktop/ ``` #### 处理整个文件夹的情况 除了单独处理单个文件外,在某些情况下可能还需要一次性迁移多个项目组成的集合体——即所谓的“文件夹”。这时就需要借助额外的一个标志位 `-r` 来告知程序递归地遍历子层结构从而完整无缺地带走所有内容[^2]: ```bash scp -r /local/path/to/directory user@remote:/remote/path/ ``` 此操作会连带选定对象内部的一切条目一同迁移到目的地对应的存储空间之下。 #### 安全性和依赖项确认 值得注意的是,由于SCP构建在SSH之上,因此确保两端都已正确配置好相应的服务是非常重要的。通常来说,默认安装好的Linux发行版都会自带必要的组件;但对于那些最小化部署或是自定义编译版本则不然。所以在正式开始之前最好先验证一下是否具备所需的软件包,如OpenSSH客户端等,并通过类似`sudo yum install openssh-clients`(针对RPM体系) 或者相应APT/YUM/ZYPPER等方式予以补充缺失的部分。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值