我无法从一个 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).
有任何想法吗?
额外细节:
- 我正在使用 Mac。
- 最终目标是建立一个类似于这里提到的 Beowulf 集群:http://techtinkering.com/2009/12/02/setting-up-a-beowulf-cluster-using-open-mpi-on-linux/
答案1
答案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 命令为用户设置密码并重新启动服务。