AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 709700
Accepted
Randy L
Randy L
Asked: 2015-07-31 06:44:43 +0800 CST2015-07-31 06:44:43 +0800 CST 2015-07-31 06:44:43 +0800 CST

Terraform 是否会在更改基础架构时处理“known_hosts”?如果是这样,怎么做?

  • 772

我对 terraform 很陌生,所以也许这不是一个好问题。但是我正在运行 [this Amazon EC2 example] 并且有一次它尝试通过 SSH 连接到机器,我假设安装了 nginx。这对我来说总是很糟糕,我只是看到反复尝试登录服务器。

我突然想到,这可能是因为在第一次登录尝试时,SSH 要求我信任远程机器并将其添加到 known_hosts 文件中。我没有(明显地)被提示这样做。

所以现在我想知道,terraform 究竟如何处理 known_hosts。我克隆了 repo 并通过它查找 known_hosts,但一无所获。

ssh
  • 2 2 个回答
  • 2518 Views

2 个回答

  • Voted
  1. Best Answer
    Martin Atkins
    2016-08-07T16:45:12+08:002016-08-07T16:45:12+08:00

    Terraform 不运行ssh命令行工具,也不OpenSSH用作库。相反,它使用用 Go 编写的替代 SSH 客户端实现。

    默认情况下,此 SSH 客户端不进行任何主机验证,并且 Terraform 不会覆盖此默认设置。因此,无需像第一次连接时那样验证主机 ID ssh。此 SSH 客户端库不考虑 OpenSSH 配置文件,因此在此处设置有关主机检查的选项将无效。

    Terraform 反复尝试连接到远程主机,直到成功或超时。超时有两个常见原因:

    • 目标实例的安全组规则不允许从运行 Terraform 的主机通过 TCP 端口 22 进行连接。这可以通过向ingress实例的安全组之一添加新规则来解决。
    • 当安全组期望私有 IP 地址时,Terraform 会尝试使用公共 IP 地址,反之亦然。该connection块可用于告诉 Terraform 如何连接。对于公共 IP 地址使用${self.public_ip},或对于私有 IP 地址使用${self.private_ip},其中public_ip和private_ip都是aws_instance资源类型的属性。

    请注意,当 Terraform 连接到实例的公共 IP 地址时,安全组必须允许来自运行 Terraform 的主机的公共IP 地址(实际上可能是 NAT 网关的地址)的 SSH 连接,同时连接到私有 IP 地址安全组必须允许 Terraform 主机的私有 IP(假设它在 EC2 实例上运行)或用于从 EC2 外部隧道到私有 IP 地址的 VPN 网关的私有 IP。

    • 7
  2. ignivs
    2015-07-31T07:01:57+08:002015-07-31T07:01:57+08:00

    最有可能的是使用以下 ssh 选项:

    -o 'StrictHostKeyChecking no'
    

    是绕过检查的方式。我会将其添加为评论而不是答案,但我不能

    • 1

相关问题

  • 如何最好地设置 ssh 隧道以访问远程网络 (Linux)

  • SSH 和重定向

  • 通过 SSH 会话使用 NET USER 命令拒绝访问

  • SSH 服务器零日漏洞利用 - 保护自己的建议

  • ubuntu apt-get upgrade - 如何在 shell 中单击确定?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve