首先,创建信任关系 1 VS 10. 但拿两台机器(192.168.1.6,192.168.1.4)作试验 #ssh-keggen -b 1024 -t rsa //(以root用户) #cd .ssh/ #ls id_rsa id_rsa.pub knows_host #scp id_rsa.pub 192.168.1.4:/root/.ssh/192.168.1.6 这里把公钥取名为可信任主机的IP地址 如今登陆到192.168.1.4机器 #cd .ssh/ #cat 192.168.1.6 >> authorized_keys 而后回到192.168.1.6机器。 #ssh 192.168.1.4
上传:html
scp /path/file User@host:/LocalPathorFile
下载:linux
scp User@host:/path/file /LocalPathorFile
用scp的时候遇到的问题:
Permission denied
lost connection
缘由就是在搭建服务器的时候为了安全性起见,默认已经关闭了scp
解决办法:
登录服务器后 /etc/ssh/ssh_config 中的一个参数改一下:
PasswordAuthentication 将no改成yes
or
PasswordAuthentication前面的#删掉 step
sudo vi /etc/ssh/sshssh_configshell
两台服务器传文件 scp -P 端口号 root@对方服务器IP:对方服务器文件路径+文件名 自身服务器保存路径 scp 自身服务器文件路径+文件名 root@对方服务器IP:对方服务器保存路径
ssh -C -f -N -g -L 26379:192.168.0.32:6379 remote_user@remote_ip:remote_port
mount -t cifs //192.168.50.34/temp /root/aa -o username=allenli,password=lcc201314,rw,dir_mode=0777,file_mode=0777
1. [代码]从服务器下载文件 安全
scp root@192.168.1.$1:$2 $3服务器
2. [代码]上传本地文件到服务器 ssh
scp $1 root@192.168.1.$2:$3ide
#文件复制:本机→远程服务器 test@xxx.xxx.xxx.xx test为用户名,xxx.xxx.xxx.xx为IP地址 scp /home/test/test.txt test@xxx.xxx.xxx.xx:/home/test.txt #文件复制:远程服务器→本机 scp test@xxx.xxx.xxx.xx:/home/test.txt /home/test/test.txt #文件夹复制在scp后面加上“-r”参数便可
远程执行脚本
ssh -l root 10.10.10.10 "/opt/test/stop.sh";
ssh -l root 10.10.10.10 "scp /opt/data/database.tcb 10.10.10.10:/opt/ttserver/test/test.tcb" 测试
开始传输文件:ui
输入:scp /home/helpteach/project/mallupload/1509681299449.png wasadmin@10.127.40.25:/home/testspa
而后拍回车键就能够看到文件正在传输了,等再出现鼠标一闪一闪说明已经传输完毕了,给你们拆解一下语句
对拷文件夹 (包括文件夹自己)
scp -r /home/helpteach/project/mallupload/ wasadmin@10.127.40.25:/home/test
对拷文件夹下全部文件 (不包括文件夹自己)
scp /home/helpteach/project/mallupload/* wasadmin@10.127.40.25:/home/test
对拷文件并重命名
scp /home/helpteach/project/mallupload/1509681299449.png wasadmin@10.127.40.25:/home/test/test.png
/home/helpteach/project/mallupload/1509681299449.png:要传输的文件
注意 : 端口大写P 为参数,2222 表示更改SSH端口后的端口,若是没有更改SSH端口能够不用添加该参数。 root@www.vpser.net 表示使用root用户登陆远程服务器www.vpser.net,:/root/lnmp0.4.tar.gz 表示远程服务器上的文件,最后面的/home/lnmp0.4.tar.gz表示保存在本地上的路径和文件名。
获取远程服务器上的文件 :
scp -P 2222 root@www.vpser.net:/root/lnmp0.4.tar.gz /home/lnmp0.4.tar.gz
获取远程服务器上的目录 :
scp -P 2222 -r root@www.vpser.net:/root/lnmp0.4/ /home/lnmp0.4/
将本地文件上传到服务器上
scp -P 2222 /home/lnmp0.4.tar.gz root@www.vpser.net:/root/lnmp0.4.tar.gz
将本地目录上传到服务器上
scp -P 2222 -r /home/lnmp0.4/ root@www.vpser.net:/root/lnmp0.4/
复制目录:
scp -r local_folder remote_username@remote_ip:remote_folder
或者
scp -r local_folder remote_ip:remote_folder
第1个指定了用户名,命令执行后须要再输入密码;
第2个没有指定用户名,命令执行后须要输入用户名和密码;
* 例子:
scp -r /home/space/music/ root@www.cumt.edu.cn:/home/root/others/
scp -r /home/space/music/ www.cumt.edu.cn:/home/root/others/
上面 命令 将 本地 music 目录 复制 到 远程 others 目录下,即复制后有 远程 有 ../others/music/ 目录。
从 远程 复制到 本地
从 远程 复制到 本地,只要将 从 本地 复制到 远程 的命令 的 后2个参数 调换顺序 便可;
例如:
scp root@www.cumt.edu.cn:/home/root/others/music /home/space/music/1.mp3
scp -r www.cumt.edu.cn:/home/root/others/ /home/space/music/
注意两点 :
1.若是远程服务器防火墙有特殊限制,scp便要走特殊端口,具体用什么端口视状况而定,命令格式以下:
#scp -p 4588 remote@www.abc.com:/usr/local/sin.sh /home/administrator
2.使用scp要注意所使用的用户是否具备可读取远程服务器相应文件的权限。
一、获取远程服务器上的文件
# cp -P 2424 username@(ip或远程服务别名):/home/username/a.tar.gz /home/username/
-P 2424表示更改SSH端口后的端口,若是没有更改SSH端口能够不用添加该参数;
username@ip 表示使用指定用户登陆远程服务器;
二、获取远程服务器上的目录
# scp -P 2424 -r name@ip:/home/name/aaa/ /home/name/
-r 参数表示递归复制(即复制该目录下面的文件和目录);
name@ip:/home/name/aaa/ 表示将远程服务器上用户家目录下的aaa文件夹的内容复制到本地加目录下;
/home/name/ 表示保存在本地上的路径;
三、将本地文件上传到服务器上
# scp -P 2424 ~/aaa.tar.gz name@ip:/home/user/
表示将本地用户家目录的文件上传至远程服务器上用户的家目录下;
四、将本地目录上传到服务器上
# scp -P 2424 -r ~/aaa/ name@ip:/home/user/bbb/
表示将本地家目录aaa的文件夹的文件所有传至远程服务用户家目录下的bbb文件夹里;
一、本地文件传输到远程服务器
命令格式:
1 |
|
将test.txt文件复制到目标服务器(192.168.1.1)下的home文件夹下。
2.本地文件夹传输到远程服务器
命令格式:
1 |
|
将test整个文件夹复制到目标服务器下的home文件夹下。
3.远程服务器文件传输到本地
命令格式:
1 |
|
将远程服务中home目录下的test.txt文件,复制到本地的test目录下
4.远程服务器文件夹复制到本地
1 |
|
将远程服务器中home目录下的test整个目录复制到本地的jjz目录下
五、scp命令指定密钥文件
1 |
|
要把当前一个文件copy到远程另一台主机上,能够以下命令。
scp /home/daisy/full.tar.gz root@172.19.2.75:/home/root
反过来操做,把文件从远程主机copy到当前系统,也很简单。
scp root@/full.tar.gz 172.19.2.75:/home/root/full.tar.gz home/daisy/full.tar.gz
将本机文件复制到远程服务器上
#scp /home/administrator/news.txt root@192.168.6.129:/etc/squid
/home/administrator/ 本地文件的绝对路径
news.txt 要复制到服务器上的本地文件
root 经过root用户登陆到远程服务器(也可使用其余拥有同等权限的用户)
192.168.6.129 远程服务器的ip地址(也可使用域名或机器名)
/etc/squid 将本地文件复制到位于远程服务器上的路径
如图经过root用户登陆远程服务器,输入yes表示赞成创建ssh链接
按提示输入root用户的密码
如图所示创建链接后开始传输文件,显示百分比、实际时间和传送速度等信息
一,两台机器一对一scp传文件
一、使用ssh-keygen 命令生成密钥。生成过程当中,除了输入密码外,其余都选择默认的值:回车便可。
[root@xxx root]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):#回车
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):#回车
Enter same passphrase again:#回车
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
e0:f0:3b:d3:0a:3d:da:42:01:6a:61:2f:6c:a0:c6:e7 root@xxx
Generating RSA keys:
Key generation complete.
会在用户目录~/.ssh/产生两个文件,id_rsa是密钥,id_rsa.pub是公钥
二、把这个密钥对中的公共密钥访问属性改成755
[root@xxx root]#chmod 755 /root/.ssh/id_rsa.pub
三、将id_rsa.pub复制到备份的机器上去,并更名为 authorized_keys,注意,名字必须是authorized_keys
[root@xxx root]# scp /root/.ssh/id_rsa.pub 192.168.1.92:/root/.ssh/authorized_keys
root@xxx's password:
id_rsa.pub 100% 218 3.2MB/s 00:00
[root@xxx root]#
以后再用ssh scp sftp 访问那台机器时,就不用输入密码。这样能够利用shell进行自动文件传送了。
2、多台机器多对一scp传文件
若是多台机器的文件须要传到一台机器上,须要注意,机器的名称是惟一的,不能有重复。 一、每一个发送机器,都须要各自作【两台机器一对一scp传文件】的步骤一、2,生成本地密钥和公钥,并对公钥id_rsa.pub赋权限 二、将每台机器的公钥都发送到接收机器端,在接收机器端将这些公钥合并成一个authorized_keys文件,最好每一个公钥隔行 三、在接收机器端将authorized_keys文件发送到每一个发送机器端,位置就放在各自用户目录~/.ssh/下。 四、每台发送机器端执行ssh-add ssh-add用于将密钥加入到ssh-agent中,SSH能够和ssh-agent通讯获取密钥,这样就不须要用户手工输入密码了。 五、测试发送端发送文件到接收端。
资源
scp自动备份 : http://www.voidcn.com/article/p-qwuvvoip-bgc.html
在crontab中利用scp命令自动备份文件 : http://www.voidcn.com/article/p-abukhsmb-wr.html
在Linux下用scp复制文件无需输入密码的技巧 : https://www.jb51.net/article/72327.htm