Erlang ssh_sftp returns eoptions password,这个错误是什么意思?

Erlang ssh_sftp returns eoptions password, what does this error mean?

我的代码现在非常简单,我从 elixir 调用 erlang。

iex> :ssh.start()
iex> :ssh_sftp.start_channel("192.168.1.183", 22, [{:user, "username"}, {:password, "password"}])

:ssh.start()returns:ok,但:ssh_sftp.start_channelreturns{:error, {:eoptions, {:password, "password"}}}。如果我删除密码元组,它就会抱怨用户元组。这让我觉得我从根本上误解了 erlang 文档。我想要一些帮助来理解我做错了什么。 ssh_sftp 文档位于 ssh_sftp

{:eoptions, _} 返回 when an option passed contains a value of invalid type. You're getting this error because :password 必须是一个列表(Erlang String 或 Elixir charlist)。 :user 并且主机名也必须是 charlists。以下应该有效:

:ssh_sftp.start_channel('192.168.1.183', 22, [{:user, 'username'}, {:password, 'password'}])

This makes me thing that I'm fundamentally misunderstanding the erlang documentation.

Erlang 中的双引号字符串是字符列表,而不是二进制文件。如果您在 Erlang 代码中看到双引号字符串,则需要在 Elixir 中使用单引号字符串。