我无法从一个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).
有任何想法吗?
额外细节:
即使其他服务器是你所在的服务器,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地址。 一旦我解决了这个问题,只需要像往常一样复制键和设置。