【发布时间】:2015-10-09 00:23:04
【问题描述】:
我一直在尝试使用 elixir 连接到远程 ssh 服务器。
这就是我在 IEX 中所做的:
[Macintosh] elixir/logglycious (master|…)> iex 15-07-20 0:11
Erlang/OTP 17 [erts-6.4] [source] [64-bit] [smp:8:8] [async-threads:10] [hipe] [kernel-poll:false]
Interactive Elixir (1.0.4) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> :application.start(:crypto)
{:error, {:already_started, :crypto}}
iex(2)> :application.start(:public_key)
{:error, {:not_started, :asn1}}
iex(3)> :application.start(:asn1)
:ok
iex(4)> :application.start(:public_key)
:ok
iex(5)> :application.start(:ssl)
:ok
iex(6)> :application.start(:ssh)
:ok
iex(7)> :ssh.connect("my.server.co.uk", 22, [ { :user, 'my_username' } ])
{:error, {:options, {:socket_options, [:inet]}}}
iex(8)>
首先,我必须说这个错误消息根本没有帮助。不过,我在 Slack 上得到了社区的大力支持。也有人建议启动 inets 应用程序。我做了并尝试连接,但我又遇到了同样的错误。
我做错了什么?更重要的是,下次遇到这样的问题怎么解决?
[已修复] 存在多个问题。首先必须在单引号之间提供服务器。然后确保您的公钥不需要密码。如果是这样,它可以作为一个选项传递给连接函数。此外,不必启动我启动的所有应用程序。 :ssh.start是我唯一需要的。
【问题讨论】:
-
我建议一件事——从现在开始,当您报告此类问题时,请确保您在最新的稳定版本上对其进行测试。 1.0.5。是 Elixir 的最新稳定版本(与 Erlang 18 一样),这可能会对您收到的错误消息产生影响。
-
感谢您的推荐。我在 elixir 1.0.4 上运行。但是我升级到 1.0.5 并收到相同的错误消息。
-
注意我使用了may这个词:)
标签: ssh elixir erlang-otp