如何在 Linux 中将密码传递给 scp 命令
先决条件
运行 Linux 的服务器
在你的服务器上配置的 root 密码
使用 SCP 命令拷贝文件
将文件从本地系统拷贝到远程系统的基本语法如下所示:
scp filename user@remotehost:/directory/path
例如,要将名为file1.txt的文件从本地系统拷贝到 /mnt 目录中 IP 地址为 192.168.1.100 的远程系统,请运行以下命令:
scp file1.txt root@192.168.1.100:/mnt/
将文件从远程系统拷贝到本地系统的基本语法如下所示:
scp user@remotehost:/file/path local/path
例如,要将名为 file1.txt 的文件从 IP 地址为192.168.1.100的远程系统拷贝到/opt目录中的本地系统,请运行以下命令:
scp root@192.168.1.100:/mnt/file1.txt /opt/
系统将提示你提供远程用户的密码,如下所示:
root@192.168.1.100 password:
在 Linux 中安装 sshpass
sshpass 是一个简单轻量级的命令行工具,它允许你为命令提示符本身提供密码。当你想通过 cron 作业进行备份时,它在 shell 脚本中非常有用。默认情况下,sshpass 不包含在任何 Linux 操作系统中,因此你需要在 Linux 系统中安装 sshpass 实用程序以使用 SCP 命令传递密码。对于基于 Ubuntu 和 Debian 的操作系统,使用以下命令安装 sshpass:
linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt install sshpass -y
对于 RHEL、Fedora、CentOS 和 Rocky Linux 操作系统,使用以下命令安装 sshpass:
dnf install sshpass -y
安装 sshpass 实用程序后,你可以继续下一步。
如何使用 SCP 命令传递密码
使用 SCP 命令传递密码的基本语法如下所示:
sshpass -p "remote-user-password" scp filename user@remotehost:/dir/path/
例如,如果要将名为file1.txt的文件拷贝到 IP 为192.168.1.100的远程服务器,请使用以下命令:
sshpass -p "password" scp file1.txt root@192.168.1.100:/mnt/
如你所见,sshpass + SCP 命令将帮助你使用单行命令将文件和目录从一个系统拷贝到另一个系统。
结论
在这篇文章中,我们解释了如何在 Linux 中使用带有 sshpass 的 SCP 命令来传递密码。sshpass 将帮助你加快文件拷贝过程。你还可以使用它自动从一台服务器备份到另一台服务器。
来自:Linux迷
相关文章