在两个 Ubuntu 实例之间复制文件

在两个 Ubuntu 实例之间复制文件

我有两个 Ubuntu 实例在两个不同的虚拟节点 (Docker) 上运行。我想通过我的 Python 脚本多次将文件从一个节点复制到另一个节点。目前,我正在测试scp另一台机器是否可以访问。两台机器可以ping互相访问,但问题是scpssh 无法正常工作。

我努力了:

  1. 两台机器都是虚拟的,ssh无法复制文件 - 因此将来可以使用 ssh 证书。

  2. scp不起作用,因为它要求输入密码,当我输入root密码时,出现invalid password错误。

请为我提供一些指点,让我能够将文件从一台机器复制到另一台机器。

编辑

scp命令:scp sourcefile.txt [email protected]:/root/dev

PS:如果对此问题有一些非常基本的解决方案而我看不到,我很抱歉,因为我对这种设置还不熟悉。

答案1

如果您已在 instance1 上创建了 ssh 密钥,则在/home/username/.ssh/root/.ssh目录中将有一个名为 的文件id_rsa.pub。获取此文件并将其内容复制到authorized_keys另一个 instance2 目录中的文件中(最有可能创建它),将 instance2.pub文件反向复制到 instance1。完成后,您就可以进行无密码复制。这适用于任何帐户。

除了并排显示在屏幕上或写在纸上之外,无需访问任何内容。然后打开.id_rsa.pub并将其写入提到的文件authorized_keys。在实例 2 中完成后,您可以将其从它们复制回您的 authorized_keys文件,它们.id_rsa.pub 有大量字符需要复制,您看到的所有内容都需要按原样复制到另一个文件中。在以开头的一条长单行上。

ssh-rsa AAAAB3NzaC1yc

例如我的公钥文件的开始。

Root 始终处于禁用状态现在我在您的编辑中看到了这一点。您需要以普通用户身份登录,然后使用 sudo 或 su 成为 root,以 root 身份执行任何操作。#PermitRootLogin prohibit-password需要在 中为 Yes/etc/ssh/sshd_config以允许其访问。然后只等待获取 /root/.ssh/authorized_keys 文件以允许使用密钥方法。您需要在service sshd restart编辑文件时重新启动 ssh,一次是在启用时,第二次是在禁用时,尽快重新启动,即立即将密钥文件放到位并注销并重新登录后,确认它可以正常工作。

相关内容