I’m a huge fan of the remote shell capabilities that elixir 1.9 added.
I’m working in an environment where I won’t be able to connect via BEAM node networking and would like to use the beam :ssh
module to give a similar experience of elixir’s releases remote
to my team.
I’m following the Erlang based examples here but I’m running into issues.
https://www.erlang-solutions.com/blog/secure-shell-for-your-erlang-node.html
http://erlang.org/doc/apps/ssh/users_guide.html
I’m running these on my Mac Mojave (10.14.6) with these Erlang/Elixir versions
Erlang/OTP 22 [erts-10.4.4] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [hipe]
Interactive Elixir (1.10.2) - press Ctrl+C to exit (type h() ENTER for help)
And this openssh version
➜ ssh -V
OpenSSH_7.9p1, LibreSSL 2.7.3
First I generate the keys (with no password)
mkdir ssh_dir
ssh-keygen -t rsa -f ssh_dir/ssh_host_rsa_key
Then I try to run this elixir code and its telling me that there is no host key available
iex(4)> :ok = :ssh.start()
:ok
iex(5)> :ssh.daemon(8989, system_dir: 'ssh_dir', password: 'foo')
{:error, 'No host key available'}
Then I try it in Erlang and get the same answer
2> ok = ssh:start().
ok
3> ssh:daemon(8989, [{system_dir, "ssh_dir"}, {password, "foo"}]).
{error,"No host key available"}
I was wondering if anyone had any insight on how to debug this issue.
(Here are the key files I’m using to debug. I am NOT using these keys anywhere, just to test the ssh module)
➜ cat ssh_dir/ssh_host_rsa_key.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDTprdAtxwCexonmzP3qDvMvukg+n/cNr86mE0CkcnAzCjmfPZBW1ywy8RDfz06uXmUq02OlmioZ2OUR7fTK+ZViVkjrwyW232EoVNW2FnwHS//LPQsRuY3JZU9KCKhhRgNUK3elCY4jOARCuVi8dw3+vqnTkBNYkNXvJNkHcwcWwwja9kHi/ZbXpKuZCTaM1CGUB8cOrc90d5hdfNdYyh4yQf2+Zu3jOJPqHOqHD3T/Bw+a56fKx7wi4+EqAHVv42Pfk8FB05CFhvGHcn+0ImhCtjUtSyTLXuXtrAkWbvPnpDVyfzPsmzMqX3Pj/lYdZEKQ07OVNb94N3hCVFhyBEb grantpowell@Grants-MacBook-Pro-2.local
➜ cat ssh_dir/ssh_host_rsa_key
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABFwAAAAdzc2gtcn
NhAAAAAwEAAQAAAQEA06a3QLccAnsaJ5sz96g7zL7pIPp/3Da/OphNApHJwMwo5nz2QVtc
sMvEQ389Orl5lKtNjpZoqGdjlEe30yvmVYlZI68Mltt9hKFTVthZ8B0v/yz0LEbmNyWVPS
gioYUYDVCt3pQmOIzgEQrlYvHcN/r6p05ATWJDV7yTZB3MHFsMI2vZB4v2W16SrmQk2jNQ
hlAfHDq3PdHeYXXzXWMoeMkH9vmbt4ziT6hzqhw90/wcPmuenyse8IuPhKgB1b+Nj35PBQ
dOQhYbxh3J/tCJoQrY1LUsky17l7awJFm7z56Q1cn8z7JszKl9z4/5WHWRCkNOzlTW/eDd
4QlRYcgRGwAAA+CowULCqMFCwgAAAAdzc2gtcnNhAAABAQDTprdAtxwCexonmzP3qDvMvu
kg+n/cNr86mE0CkcnAzCjmfPZBW1ywy8RDfz06uXmUq02OlmioZ2OUR7fTK+ZViVkjrwyW
232EoVNW2FnwHS//LPQsRuY3JZU9KCKhhRgNUK3elCY4jOARCuVi8dw3+vqnTkBNYkNXvJ
NkHcwcWwwja9kHi/ZbXpKuZCTaM1CGUB8cOrc90d5hdfNdYyh4yQf2+Zu3jOJPqHOqHD3T
/Bw+a56fKx7wi4+EqAHVv42Pfk8FB05CFhvGHcn+0ImhCtjUtSyTLXuXtrAkWbvPnpDVyf
zPsmzMqX3Pj/lYdZEKQ07OVNb94N3hCVFhyBEbAAAAAwEAAQAAAQB+X44NowejZ5NvUJlP
53CFSPx0B34uo7W8q9FXlmrrpjtJnBWBYqbOnWw7jQ6nMLWqkjoFyEMHQmxPzh6xhQXLzu
2dg9i1fqrMdXMIaLgSyaqt506H3XF6PgOE96Dt5kU9Ng4K11SW8W6cXnAmixkdh8r/+JYm
XmStT1iGL9B+oLvJWXqB+nSfYI1/25/SRJldmPmk02cxyM4f4nyKMjCX+/Fyd0GPTOVkf6
fnzS9eC810HP5bmYEHgZYfJYQAqCMk0hkOIp5RH5jimu6Csv1uMrptE/7dkYgXzU+QJDp3
SbzmYddfaq+9fjwpFftyHXQSk+MtA7sMpD4n2+bAvAx5AAAAgQDkvvedNDP8OVvkRia/CT
x8hzqgjrlv18UV21zVU8maeoLlsjSuUD0f41VRbD5iz1zOGOiQQX05feLOVBdZtggqA+Mj
ZJdDM7r0r9fmPz9oRKEbM7VN8TNnvkS9idA7ptvvjnSC5KRyNAPwDVgd3HqC3d2UW1L1yL
00t5iRa3ewlQAAAIEA+f+XBI6iR470xytUIlM5jFFZxwH/xkAhNNSwhAONM4AkZ/5ImuJg
ZMxSASw2/Q6UCR1/Nsp32FAMtEOdmKMfKVlhFwJ2Y8C/qzN7OZ1P5IxaGBeiphDScCTG9i
otP+5bRnff3Lzfm1eIeiXkAvHGKlnGxmQx2woS2lnAldZi/NcAAACBANi7dN74LVS9m3av
Hc2Cs22JFdRv2MUjS1NJlF9t8QXoXolH2mUnEK6EfSDRHgmelZ4kkIMEHKwHpCfTKwJmci
B3yfpB4gdnS0QGr+BftpcjaMCv/5lzlmP86e8ucLAq87lSD9lK5Ux2IUxCOFpj7nxS8oc+
g60pv8yPkpbWyaFdAAAAJmdyYW50cG93ZWxsQEdyYW50cy1NYWNCb29rLVByby0yLmxvY2
FsAQIDBA==
-----END OPENSSH PRIVATE KEY-----
AGAIN, these are not keys I’m really using, they’re just for debugging why the BEAM won’t pick up the host key
Any insights would be appreciated