Elixir Phoenix SSH

From ElixirBlocks
Jump to: navigation, search

These are ways to SSH into a server using Elixir/Phoenix. Using the Librarian library you can do this:



SSH.connect!("test.laptop.local", username: "username", password: "passs", silently_accept_hosts: true)


If server has a private key:

      SSH.connect(
        "server.host",
        user: "server.user",
        port: "server.port",
        identity: "identity path eg: ~/.ssh/id_rsa_nop",
        save_accepted_host: false,
        silently_accept_hosts: true,
        user_interaction: false
      )


Librarian has a few SCP commands as well:


{:ok, conn} = SSH.connect("some.other.server")
SSH.send!(conn, binary_or_filestream, "path/to/destination.file")

{:ok, conn} = SSH.connect("some.other.server")
SSH.fetch!(conn, "path/to/source.file")
|> Enum.map(&do_something_with_chunks/1)