无法从一个 EC2 实例 scp 到另一个 EC2 实例

无法从一个 EC2 实例 scp 到另一个 EC2 实例

我无法从一个 EC2 实例 scp 到另一个 EC2 实例。从我的笔记本电脑,我能够毫无问题地 ssh 到每个实例。

我有两个例子。

#worker1
ec2-107-20-7-57.compute-1.amazonaws.com

#master
ec2-50-19-8-109.compute-1.amazonaws.com

以下是我目前所做的事情。

我在主节点上创建了一对新密钥对 ssh-keygen -t dsa

我将 id_dsa.pub 从主节点复制粘贴到我的笔记本电脑上

scp -i ec2key.pem [email protected]:/home/ubuntu/.ssh/id_dsa.pub /Users/me/somefolder

我将 id_dsa.pub 文件从笔记本电脑复制粘贴到工作节点

scp -i ec2key.pem /Users/me/somefolder/id_dsa.pub [email protected]:/home/ubuntu/.ssh 

在工作节点上,我将 id_dsa.pub 文件附加到我的 authorized_keys 文件中

cat id_dsa.pub >> authorized_keys

我在主节点上创建了一个文件:/home/ubuntu/test.txt,然后尝试将此文件从主节点 scp 到工作节点

scp -v -i [email protected]:/home/ubuntu/.ssh/id_dsa [email protected]:/home/ubuntu/test.txt [email protected]:

我得到了以下结果

Permission denied (publickey).

有任何想法吗?

额外细节:

答案1

scp 无法从另一台服务器获取密钥,即使该服务器就是您所在的服务器。如果 scp 无法自动获取,请使用您要使用的标识文件的文件系统路径。

scp -v -i /home/ubuntu/.ssh/id_dsa /home/ubuntu/test.txt[电子邮件保护]

或 scp -v -i /home/ubuntu/test.txt[电子邮件保护]

答案2

用于ssh-copy-id确保密钥被正确复制并且相关文件/目录的权限正确。

如果您的系统不包含该命令,ssh-copy-id您可以从以下 openssh repo 获取它。openssh 项目仓库&链接到 openssh-copy-id

答案3

我认为您不需要为此任务设置新密钥。

如果您能够从您的 Mac 登录到两台机器,那么我相信您的密钥已经设置好了。

您只需使用此命令:

# scp $master:<file> $worker:<file>

并且此命令开箱即可使用。

不过我还是想了解你为什么要为这个任务创建新的密钥。

答案4

您只需做一件事:打开 sshd_config 文件并将行 PasswordAuthentication no 编辑为 PasswordAuthentication yes,然后使用 passwd 命令为用户设置密码并重新启动服务。

相关内容