无法从一个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上创build了一个新的密钥对

我将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 

我在主节点上创build了一个文件:/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). 

有任何想法吗?

额外细节:

  • 我正在使用Mac。
  • 最终目标是build立一个类似于这里提到的Beowulf集群: http : //techtinkering.com/2009/12/02/setting-up-a-beowulf-cluster-using-open-mpi-on-linux /

即使其他服务器是你所在的服务器,scp也不能从另一台服务器获取密钥。 如果scp不会自动提取,请使用您要使用的身份文件的文件系统path。

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

或者scp -v -i /home/ubuntu/test.txt [email protected]

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

如果你的系统没有包含命令ssh-copy-id你可以从下面的openssh仓库中得到它。 openssh项目回购 & 链接到openssh-copy-id

我不认为你需要为这个任务设置新的密钥。

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

你只需要使用这个命令:

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

而这个命令只是简单的开箱即用。

虽然我仍然喜欢理解为什么你要为这个任务创造新的钥匙。

不要忘记检查你的安全组织! 我花了几个小时四重检查设置〜/ .ssh,实例ID,DNS名称,读取各种教程时,事实certificate我刚刚忘记我将我的实例设置为一个安全组,只允许一个IP地址。 一旦我解决了这个问题,只需要像往常一样复制键和设置。