(转)使用scp命令在linux操作系统之间传递文件

一、关于scp

scp是英文secure copy (remote file copy program)的简称,主要用于在两台主机之间通过网络拷贝文件。scp使用ssh协议进行数据传递,其认证方式和安全性同ssh一致。

二、ssh客户端的安装

在使用过程中如果出现提示“-bash: scp: command not found”表示系统还没有安装ssh客户端软件,需要执行yum install openssh-clients命令进行安装

三、scp命令的使用方法

1、scp命令的基本语法

scp [options] [[[email protected]]host1:]file1 … [[[email protected]]host2:]file2

2、scp命令的常用参数

-1 强制scp命令使用协议ssh1

-2 强制scp命令使用协议ssh2

-4 强行使用 IPV4 地址。

-6 强行使用 IPV6 地址。

-B 使用批处理模式(传输过程中不询问传输口令或短语)

-C使用此参数时ssh协议打开压缩选项。

-P 指定远程主机的端口。注意是大写字母“P”。

-r 以递归方式复制文件夹内的数据。在拷贝文件夹是要用到此选项。

-p 保留原文件的修改时间,访问时间和访问权限。

-q 不显示传输进度条。

-v 详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。

-c cipher 以cipher将数据传输进行加密,这个选项将直接传递给ssh。

-F ssh_config 指定一个替代的ssh配置文件,此参数直接传递给ssh。

-I identity_file 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。

-l limit 限定用户所能使用的带宽,以Kbit/s为单位。

-o ssh_option 如果习惯于使用ssh_config(5)中的参数传递方式,

-S  program 指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。

四、scp命令的使用示例

1、从本地主机复制文件(夹)到远程主机

命令格式为(-r参数用于递归复制文件夹):

scp (–r) local_file [email protected]_ip:remote_folder

示例1:

[[email protected] ~]#scp /tmp/temp.txt [email protected]:/tmp/temp.txt

说明:将本地主机文件/tmp/temp.txt复制到远程主机192.168.1.2上的/tmp文件夹中(远程主机用户为root)

示例2:

[[email protected] ~]#scp –r /tmp [email protected]:/tmp

说明:将本地主机文件夹/tmp中的所有文件以递归方式拷贝到远程主机192.168.1.2上的/tmp文件夹中(远程主机用户为root)

2、从远程主机复制文件(夹)到本地主机

scp (–r) [email protected]_ip:remote_folder local_file

3、在两台远程主机之间复制文件(夹)

scp(–r) [email protected]_ip:remote_folder

五、使用过程中可能碰到的问题及解决方法

1、用户文件权限引起的“许可拒绝”问题

示例:

username1 是本地机 username2 是远程

# scp /home/files [email protected]:/home/files2 [email protected]‘s password:
scp: /home/files2: Permission denied

说明:这是因为远程主机的用户username2没有/home/files2文件的写权限。可以使用以下解决办法:

本地服务器上执行:

#scp /home/files [email protected]:/tmp

然后远程服务器上执行:

#mv /tmp/files /home/files

或者可以在远程主机上配置/home文件夹增加用户username2的写权限。

2、ssh协议中用户权限配置引起的“许可拒绝”问题

示例:

#scp /www/xinpindao [email protected]:/tmp    远程机用户root

[email protected]‘s password:

Permission denied, please try again.

说明:这是由于ssh服务关闭root用户的登录权限引起。可以使用以下解决方法:

要修改root的ssh权限,即修改 /etc/ssh/sshd_config文件中PermitRootLogin no 改为 PermitRootLogin yes,然后重启ssh服务即可

#/etc/init.d/sshd   restart

转载地址:http://myblog.jyc.edu.cn/?p=151

时间: 2024-07-31 18:20:22

(转)使用scp命令在linux操作系统之间传递文件的相关文章

linux服务器之间传递文件-scp命令

linux服务器之间传递文件: 从远程机器复制文件到本地服务器的目录下: scp -r [email protected]远程机器的地址:要复制的文件目录 本地的目录 例:从147往221上复制147上的tomcat目录:scp -r [email protected]:/home/tomcat /home 不直接通过xftp传递的原因是:scp命令速度超快 原文地址:https://www.cnblogs.com/Suntree/p/11552528.html

nc命令在Linux服务器之间互传文件或文件夹

有时候,在线上服务器上传文件或文件夹,没有做秘钥,也不知道用户的相关密码,scp和rsync都使用不了. 推荐使用nc命令在Linux服务器之间互传,条件是互相能ping通. 文件夹: 接受文件的服务器 nc -l 9995 | tar zxvf - (可以先获取本地内网ip-1.1.1.1,稍后需要复制到另外一条服务器上,9995端口保持一致即可,可随意)文件所在的服务器 tar zcvf - 文件名称/* | nc 1.1.1.1 9995 文件:接收端 nc -l 1234 > abc.l

scp命令详解—跨服务器复制文件

scp在跨机器复制的时候为了提高数据的安全性,使用了ssh连接和加密方式,如果机器之间配置了ssh免密码登录,那在使用scp的时候密码都不用输入. 在服务器104.238.161.75上操作,将服务器104.238.161.75上/home/lk/目录下所有的文件全部复制到43.224.34.73的/root目录下,命令为:scp -r /home/lk [email protected]:/root(注意:IP与路径直接加冒号). 命令详解: scp是secure copy的简写,用于在Lin

Linux系统之间拷贝文件的技巧总结

日常工作中需要经常从远程或本地服务器拷贝/移动大量文件.遇到文件比较多比较散的时候速度较慢,所以在想有没有较快的方式.经过搜罗.整理.验证,大概有以下几种. 首先,无论本地还是远程,需要移动或拷贝的文件较多且都不太大时,用cp命令和mv命令效率较低,可以先使用tar工具对将要拷贝/移动的内容进行打包/压缩,之后再进行拷贝/移动,最后再解包/解压缩. 另外,也是很关键的一个技巧,即,不必在tar打包/压缩完毕之后再进行拷贝,解包/解压缩,可以通过管道一边打包/压缩另一边执行拷贝解包/解压缩. 比如

使用WinSCP在Windows和Linux系统之间传输文件

小梅哥编写,未经许可,严禁用于任何商业用途 2018年6月30日 在日常SoC开发中,我们经常需要在Windows和Linux系统之间传输文件,例如在Windows系统上的DS-5集成开发环境中编写好的Linux应用程序需要传递到Linux嵌入式开发板中(例如SoC FPGA开发板),或者需要将Linux系统中的文件拷贝到Windows上进一步操作处理,就涉及到两者之间的文件传输.实现上述场景中文件传输的一种比较便捷的方式,是使用SCP方式.在Windows系统中,可以通过安装WinSCP软件来

关于Linux与windows传递文件乱码问题

linux下一般是采用utf-8的编码,而我们在windows上编辑文件时是gb2312的编码.所以导致中文编码会乱码.要更正这个问题实际上很简单只要把文件转换成utf-8编码格式然后再导入就ok啦. 手动更改配置文件的命令: vi /etc/sysconfig/i18n 将LANG="zh_CN.UTF-8"修改为:LANG="zh_CN.GBK" 保存并关闭,运行下面的命令使配置生效: source /etc/sysconfig/i18n 将终端字符编码显示为简

UNIX进程之间传递文件描述符recvmsg与sendmsg

socketpair: 功能:创建一个全双工的流管道 原型 int socketpair(int domain, int type, int protocol, int sv[2]); 参数 domain: 协议家族 type: 套接字类型 protocol: 协议类型 sv: 返回套接字对 返回值:成功返回0:失败返回-1 ssize_t sendmsg(int sockfd, const struct msghdr *msg, int flags); ssize_t recvmsg(int

0707 父子进程之间传递文件描述符

1 /************************************************************************* 2 > File Name: pass_fd.c 3 > Author:Monica 4 > Mail:[email protected] 5 > Created Time: Mon 07 Jul 2014 09:52:49 PM CST 6 ********************************************

利用rz、sz命令在Windows主机和Linux主机之间传送文件

当我们在Windows上使用xshell连接Linux主机,需要向Linux主机传送文件或者从Linux主机上获取文件时,可以使用rz和sz命令来完成,rz和sz的好处在于简单方便只要在终端输入命令即可开启文件传输. rz:运行该命令,Linux主机接收文件,相对于Windows主机来说是向Linux主机传送文件. sz:运行该命令,Linux主机发送文件,相对于Windows主机来说是从Linux主机获取文件,sz命令后接要发送的文件. 当然,rz和sz在Linux上默认是没有安装的,这里我们