绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
如何在 Linux 中将密码传递给 scp 命令
2022-05-23 15:04:15

将文件和目录从一个系统拷贝到另一个系统是任何系统管理员的常见任务。scp,也称为安全拷贝(secure copy),是一种 Linux 命令行实用程序,用于将文件从一台服务器安全地拷贝或传输到另一台服务器。SCP 命令允许你将文件或目录从本地系统拷贝到远程系统,从远程系统拷贝到本地系统,或在本地系统的两个远程系统之间拷贝。
当你使用 scp 命令时,你需要在传输文件之前提供远程用户的密码。在这篇文章中,我们将解释如何在 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迷

链接:https://www.linuxmi.com/linux-password-scp.html


分享好友

分享这个小栈给你的朋友们,一起进步吧。

Linux技术精选专区
创建时间:2020-07-08 10:30:23
Linux,全称GNU/Linux,是一套免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年次释出,它主要受到Minix和Unix思想的启发,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • dapan
    专家
戳我,来吐槽~