我目前正在尝试使用另一台 (master) 的 ssh 访问远程主机 (假设为 node1)。由于 ssh-copy-id 不起作用,我手动执行了此操作。
我在本地机器上使用 ssh-key-gen 生成了密钥对(无密码)。然后我将私钥上传到远程主机(创建~/.ssh/id_rsa
)
然后我进入我的node1并在authorized_key中添加公钥
因此我可以通过输入以下命令从 master 连接到 node1
ssh -i .ssh/id_rsa user@node1
不过我希望能够通过输入进行连接, ssh user@node1
但我收到了错误
Permission denied (publickey,gssapi-keyex,gssapi-with-mic)
。
我认为这个错误是由于我没有使用密钥而引起的。
我怎样才能做到这一点?
PS:实际上,这部分脚本用于自动配置从主节点到节点 1 的访问,因为我将安装 Openshift,并且需要使用 ssh 访问节点来配置它。但 Issh 私钥是可行的。
答案1
您可以创建一个 ~/.ssh/config 文件。以下是示例
Host node1
User <user>
IdentityFile ~/.ssh/id_rsa
配置完成后,您需要做的就是ssh node1
继续前进。
您收到该错误很可能是因为命令缺少密钥。您可以通过转到 node1 服务器上的 /var/log/secure 来验证这一点。
答案2
我找到了这个解决方案:
eval $(ssh-agent -s)
ssh-add <path>/id_rsa