【发布时间】:2014-10-08 15:19:17
【问题描述】:
我需要使用 bash 脚本来执行以下操作:
- 在 NodeA 上生成公钥私钥
- 将公钥复制到远程NodeB的authorized_keys中
- 将 NodeB 添加到 NodeA 的 known_hosts。
我需要在没有密码提示的情况下完成所有这些操作,以便 ssh 进入 NodeB
在第二步中,我什至用“-i”指定了私钥。
以下脚本我现在仍然要求输入密码
#!/bin/bash
sudo ssh-keygen -t rsa -N "" -f /root/.ssh/id_ccn_rsa
ssh -i /root/.ssh/id_ccn_rsa -o StrictHostKeyChecking=no $1
sudo sh -c "ssh-keyscan $1 >> /root/.ssh/known_hosts"
【问题讨论】:
-
首先告诉我们您如何能够在不使用密码的情况下访问远程服务器以及您拥有哪些用户和/或权限。先排除关于传输任何文件的部分。
-
我可以从我的系统通过 ssh 连接到两个节点。我需要从一个节点 ssh 到另一个节点。为了让这两个节点相互通信,我希望设置一个单独的密钥对。我无权访问密码。我现在可以让它工作的唯一方法是将公钥从 nodeA 复制粘贴到 nodeB 的 authorized_keys 列表中,同时我从我的电脑上 ssh-ed 到它们中
-
考虑使用 saltstack 或 ansible 之类的东西。或者,由于此活动是其中之一,请使用集群 ssh 同时编辑所有主机上的文件。
标签: linux bash shell ssh public-key