Ansible:如何配置没有 ssh 密钥的跳转主机?

Posted

技术标签:

【中文标题】Ansible:如何配置没有 ssh 密钥的跳转主机?【英文标题】:Ansible: How do I configure a jump host without ssh keys? 【发布时间】:2017-11-01 16:27:29 【问题描述】:

我查看了 [to faq][1] ,但我的任务没有答案。

如何通过 Ansible 使用密码访问堡垒(跳转框)主机?我们不考虑使用 SSH 密钥。在这种情况下,SSH 配置(或 Ansible 配置)会是什么样子? 例如使用 SSH 密钥,配置如下所示:

ansible_ssh_common_args: '-o ProxyCommand="ssh -W %h:%p -q user@gateway.example.com"'

如何使用密码达到同样的效果?

【问题讨论】:

与您展示的方式完全相同,但一旦请求密码,您将被提示输入密码。您还错过了常见问题解答的链接。 谢谢。对不起。这是 - docs.ansible.com/ansible/faq.html 【参考方案1】:

您可以使用ProxyJump ssh 选项,该选项不需要在跳转主机上安装netcat/nc。

因此,在您用于运行 Ansible 命令的用户的 ~/.ssh/config 文件中,添加类似这样的内容

Host jumphost
  HostName 1.1.1.1  # use actual ip address or fqdn

Host *
  ProxyJump jumphost

【讨论】:

我不知道这个选项从 OpenSSH 7.3 开始可用。你能举出任何示例剧本吗?因为这是好方法(如果 netcat 不可用)【参考方案2】:

在我的~/.ssh/config 文件中,我已经像这样配置了堡垒主机:

##### Private hosts access through bastion host #####
Host bastion-host
  HostName 52.13.2.54
  ForwardAgent yes

Host 10.10.*
  ProxyCommand ssh -q bastion-host nc -q0 %h %p

然后我可以直接在私有子网中的主机上运行 Ansible。希望对你有帮助

【讨论】:

以上是关于Ansible:如何配置没有 ssh 密钥的跳转主机?的主要内容,如果未能解决你的问题,请参考以下文章

ansible角色调用

Android基础知识:Activity(3)Activity之间的跳转

ansible不配置ssh免密钥,使用密码登录

如何使用 ansible 推送带有 SSH 密钥身份验证的剧本

ansible安装以及配置

ansible的安装使用