【问题标题】:How to use get cf ssh-code password如何使用获取 cf ssh-code 密码
【发布时间】:2017-08-17 15:56:59
【问题描述】:

我们使用的是 CF Diego API 2.89 版本,目前我能够使用它并在运行 cf ssh myApp 时查看 vcap 和应用程序资源。 现在变得更难了:-)

我想部署与“APP2”“对话”的App1 并可以通过代码 (node.js) 访问它文件系统(运行 ls...时在命令行中可用),这可能吗?

我发现这个库提供了通过代码连接到 ssh 的能力,但不确定我应该在主机端口等中放置什么

在连接中,我提供了应该检索的 密码 通过代码

编辑

});
}).connect({
host: 'ssh.cf.mydomain.com',
port: 2222,
username: 'cf:181c32e2-7096-45b6-9ae6-1df4dbd74782/0',
password:'qG0Ztpu1Dh'

});

现在,当我使用 cf ssh-code(获取密码)时,我收到很多请求,我尝试通过邮递员模拟但没有成功, 有人可以帮忙吗? 我需要以某种方式获取密码值... 如果我不提供它,我会收到以下错误:

SSH Error: All configured authentication methods failed

顺便说一句,假设我不能使用 CF Networking 功能、卷服务,而且我知道容器是短暂的......

【问题讨论】:

  • 您是否尝试在运行时从一个容器 ssh 到另一个容器?
  • @K.AJ - 没错
  • 我已经与 CF 合作了一段时间,从来没有需要做这样的事情。只是好奇,为什么?你能解释一下你的用例吗?您是否只需要两个应用程序之间共享的公共文件系统资源?
  • 顺便说一句,您的要求违反了云原生原则。云原生应用应该只依赖于云环境。云环境应该提供它需要的一切。它不能依赖于任何其他应用程序。因为请记住,CF 可以将应用及其容器替换为新实例,而无需通知任何其他应用。
  • 对于主机/端口,运行bx info。美国南部是ssh.ng.bluemix.net:2222。您还需要应用程序 guid 和 bx cf ssh-code 来连接。作为初学者请参阅stackoverflow.com/questions/41858496/… 我在这里同意@K.AJ。这不是云原生设计。

标签: node.js ssh ibm-cloud cloud-foundry


【解决方案1】:

运行cf ssh 时在幕后发生的过程记录在here

  1. 它获得一个ssh令牌,这与运行cf ssh-code相同,只是从UAA获得一个auth code。如果您运行CF_TRACE=true cf ssh-code,您可以确切地看到它在幕后为获取该代码所做的工作。

  2. 然后,您将需要一个 SSH 客户端(可能是编程客户端)来使用以下详细信息进行连接:

    • 端口->2222
    • 用户 -> cf:<app-guid>/<app-instance-number>(例如:cf:54cccad6-9bba-45c6-bb52-83f56d765ff4/0`)
    • host -> ssh.system_domain(如果不确定,请查看cf curl /v2/info

话虽如此,不要走这条路。这是个坏主意。每个应用程序实例的文件系统都是临时的。即使您从其他应用程序实例连接以共享本地文件系统,您仍然可以很容易地丢失该文件系统的内容 (cf restart) 并且可能出于您无法控制的原因(意外的应用程序崩溃,平台管理员会滚动升级等)。

改为将文件存储在外部,可能在 S3 或类似服务上,或者考虑使用 Volume 服务。

【讨论】:

  • 嗨,Daniel,我已经按照您的说法对其进行了测试,但出现了错误,请查看我的编辑。如果我遗漏了什么。顺便说一句,我知道所有可能存在的问题。这只是一些测试......
  • 我认为主机和端口应该来自cf curl /v2/info app_ssh_endpoint 而不是ssh.system_domain。
  • @opiethehokie - 正是我使用 app_ssh_endpoint 值连接端口,但它不起作用请查看我的编辑...知道可能缺少什么吗?我还尝试使用 node 中的另一个 ssh 库(我将在 2 分钟内更新我的问题)请看看你是否可以帮助......谢谢!
  • 您可以通过cf ssh 访问该应用程序吗? All configured authentication methods failed 的一个典型原因是您的用户没有 SpaceDev。
【解决方案2】:

我专门与 PCF 合作过,因此请在考虑到您的 Bluemix 平台的情况下接受我的建议。

如果您需要从 App1 查看 App2 创建的文件,您需要的是一个公共资源。

您可以将 S3 资源作为 CUPS 服务注入并创建服务实例并绑定到这两个应用程序。这样,两者都将读取/写入同一个 S3 端点。

在 Google 上快速搜索 Bluemix S3 资源显示 - https://console.bluemix.net/catalog/infrastructure/cloud_object_storage


Pivotal Cloud Foundry 1.11 版附带Volume Services

似乎 Bluemix 有类似的资源 - https://console.bluemix.net/docs/containers/container_volumes_ov.html#container_volumes_ov

您可能想尝试一下。

【讨论】:

    猜你喜欢
    • 2011-04-03
    • 1970-01-01
    • 1970-01-01
    • 2012-02-18
    • 1970-01-01
    • 2018-09-08
    • 2021-12-09
    • 2019-01-13
    • 2021-03-18
    相关资源
    最近更新 更多