linux · 2019-12-03 0

Linux的传输文件

一.scp

scp用于两台主机传输文件

格式:

scp <source> <target>
  • 下载文件:scp <username>@<ip>:<server_file> <client_path>
  • 上传文件: scp <client_file> <username>@<ip>:<server_path>

服务端安装 ssh-server,并开启 ssh 服务

apt install openssh-server
service ssh start

客户端安装 ssh-client,使用 scp 传输文件

apt install openssh-client
scp test.txt root@node0001:/opt

二、sshpass

ssh 登陆不能在命令行中指定密码,需要用户交互输入密码,sshpass 的出现,解决了这一问题。它允许你用 -p 参数指定明文密码,然后直接登录远程服务器,
它支持密码从命令行、文件、环境变量中读取。所以,通过sshpass实现以非交互的形式为ssh提供密码

格式:

sshpass -p <password> ssh <username>@<ip> -p <port>
  • 直接登陆:sshpass -p <passwod> ssh <username>@<ip>sshpass -f <passwod_file> ssh <username>@<ip>
  • 执行远程命令:sshpass -p <passwod> ssh <username>@<ip> <commend>
  • 下载文件:sshpass -p <passwod> scp <username>@<ip>:<server_file> <client_path>
  • 上传文件:sshpass -p <passwod> scp <client_file> <username>@<ip>:<server_path>

服务端安装 ssh-server,并开启 ssh 服务

apt install openssh-server
service ssh start

客户端安装 ssh-client、sshpass,使用 sshpass 传输文件

apt install openssh-client
apt install sshpass
sshpass -p 123456 scp test.txt root@node0001:/opt

三、rz 与 sz

rz 与 sz 使用 zmodel 协议,ubuntu 自带的 terminal 不支持 zmodel,最简单的方式是安装 zssh

服务端安装 ssh-server,并开启 ssh 服务;安装 lrzsz

apt install openssh-server
service ssh start
apt install lrzsz

客户端安装 ssh-client、lrzsz、zssh

apt install openssh-client
apt install lrzsz
apt install zssh

下载文件:

# 客户端使用 zssh 登陆到服务端
zssh root@node0001
# 使用 sc 发送服务端文件,此时进入等待,按ctrl + @键,会跳转到客户端
sc server.txt
# 客户端 rz 接受文件
rz

上传文件:

# 客户端使用 zssh 登陆到服务端
zssh root@node0001
# 服务端 rz 接受文件,此时进入等待,按ctrl + @键,会跳转到客户端
rz
# 客户端 sc 发送文件
sc client.txt