我有两个 Ubuntu 实例在两个不同的虚拟节点 (Docker) 上运行。我想通过我的 Python 脚本多次将文件从一个节点复制到另一个节点。目前,我正在测试scp
另一台机器是否可以访问。两台机器可以ping
互相访问,但问题是scp
ssh 无法正常工作。
我努力了:
两台机器都是虚拟的,
ssh
无法复制文件 - 因此将来可以使用 ssh 证书。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,一次是在启用时,第二次是在禁用时,尽快重新启动,即立即将密钥文件放到位并注销并重新登录后,确认它可以正常工作。