对于任何系统管理员来说,将文件和目录从一个系统拷贝到另一个系统是日常工作之一,这其中过程需要用上scp,也较为安全拷贝(secure copy),是一种Linux命令行实用程序,作用是将文件从一台服务器安全地拷贝或传输到另一台服务器。也就是说,scp命令允许你将文件或目录从本地系统拷贝到远程系统,从远程系统拷贝到本地系统,或在本地系统的两个远程系统之间拷贝。
当我们使用scp命令使,需要在传输文件前提供远程用户的密码,今天我们将谈谈如何在Linux中将密码传递给scp命令。
1、使用scp命令来拷贝文件
①将文件从本地系统拷贝到远程系统:
scp filename user@remotehost:/directory/path
举个例子,将file1.txt文件从本地系统拷贝到/fyjy目录中ip地址为192.128.1.1的远程系统,具体如下:
scp file1.txt root@192.168.1.1:/fyjy/
②将文件从远程系统拷贝到本地系统:
scp user@remotehost:/file/path local/path
③提供远程用户的密码:
root@192.168.1.1 password:
2、在Linux中安装sshpass
sshpass是一个简单轻量级的命令行工具,允许用户为命令提示符提供密码,在默认情况下,sshpass不安装在任何Linux操作系统中,所以若是想在Linux中使用sshpass命令,需提前安装。
①基于Ubuntu和Debian的操作系统:
linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt install sshpass -y
②基于RHEL、Fedora、CentOS和Rocky Linux的操作系统:
dnf install sshpass -y
③使用sco命令传递密码:
sshpass -p "remote-user-password" scp filename user@remotehost:/dir/path/
举个例子,将file1.txt文件拷贝到/fyjy目录中ip地址为192.128.1.1的远程服务器,具体如下:
sshpass -p "password" scp file1.txt root@192.168.1.1:/fyjy/