共计 1441 个字符,预计需要花费 4 分钟才能阅读完成。
把本机的文件传到目标:
cd /home/ && tar czv test | ssh root@HostIP -p 22 'tar xz'
解释:
如你所见, 这行命令其实由多个命令组成
首先是 cd 到目标目录的父级目录, 然后 ”&&” 表示 cd 命令执行成功再继续后面的命令, 顺带:”||” 表示:若前一个命令执行成功,就不会执行下一条了。
后面是一个 tar 命令, 将 test 压缩, 但是并不输出到文件, 而是通过管道(那个 ”|” 表示管道), 传给后面的 ssh 命令
ssh 命令连接到目标主机, 并执行 ”tar xz” 将数据在另一边解压.
从远程复制文件到本机
ssh root@HostIP 'cd /home && tar cz test' | tar xzv
原理同上
不想输入密码?
可以试试使用 sshpass
apt 安装:
sudo apt-get install sshpass
或者编译源码:
wget http://sourceforge.net/projects/sshpass/files/sshpass/1.05/sshpass-1.05.tar.gz
tar xvzf sshpass-1.05.tar.gz
./configure
make
sudo make install
使用方法:
sshpass -p [passwd] ssh -p [port] root@HostIP
下面关于 SSH 相关的文章您也可能喜欢,不妨参考下:
集群环境 SSH 免密码登录设置 http://www.linuxidc.com/Linux/2017-03/141296.htm
Linux 基础教程:配置 SSH 免密码登陆 http://www.linuxidc.com/Linux/2017-07/145847.htm
远程 SSH 连接服务与基本排错 http://www.linuxidc.com/Linux/2017-05/143738.htm
使用 SSH 公钥密钥自动登陆 Linux 服务器 http://www.linuxidc.com/Linux/2017-02/140642.htm
配置 SSH 免密码登录 http://www.linuxidc.com/Linux/2017-08/146213.htm
开启 SSH 服务让 Android 手机远程访问 Ubuntu 14.04 http://www.linuxidc.com/Linux/2014-09/106809.htm
SSH 非交互式密码授权远程执行脚本 http://www.linuxidc.com/Linux/2017-04/143180.htm
SSH 通过密钥登陆 http://www.linuxidc.com/Linux/2017-06/144997.htm
Ubuntu 安装配置 SSH(ssh: connect to host localhost port 22: Connection refused 问题的解决) http://www.linuxidc.com/Linux/2015-01/112045.htm
CentOS SSH 提示:connect to host centos-py port 22: Connection refused http://www.linuxidc.com/Linux/2017-11/148586.htm
Linux 上实现 SSH 免密码登陆远程服务器 http://www.linuxidc.com/Linux/2017-05/144165.htm
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-11/148703.htm