ostap

ostap

`:ssh.daemon` - can't get port tunneling to work (via tcpip_tunnel_in: true)

Hello. I’ve noticed the tcpip_tunnel_in option in the Erlang documentation for the ssh module and trying to make it work.

defmodule MyApp.SSHDaemon do
  @sys_dir String.to_charlist("#{Path.expand(".")}/sys_dir")

  def start_link do
    :ssh.daemon(
      4445,
      system_dir: @sys_dir,
      no_auth_needed: true,
      # disconnectfun: &log_it/1,
      # connectfun: &log_it/3,
      # failfun: &log_it/3,
      tcpip_tunnel_in: true
    )
  end

  def child_spec(_) do
    %{
      id: __MODULE__,
      start: {__MODULE__, :start_link, []},
      name: __MODULE__
    }
  end

  def log_it(a1, a2 \\ nil, a3 \\ nil, a4 \\ nil, a5 \\ nil, a6 \\ nil) do
    require Logger

    Logger.debug(
      "#{inspect(a1)}, #{inspect(a2)}, #{inspect(a3)}, #{inspect(a4)}, #{inspect(a5)}, #{inspect(a6)}"
    )
  end
end

Here’s how I’ve generated the sample keys:

mkdir sys_dir
ssh-keygen -N '' -b 256 -t ecdsa -f sys_dir/ssh_host_ecdsa_key

Connecting to it this way:

❯❯❯ ssh -R 8082:localhost:8080 127.0.0.1 -p 4445
Warning: remote port forwarding failed for listen port 8082
Eshell V14.1.1 (press Ctrl+G to abort, type help(). for help)
1> 

Any advice or examples on getting TCP port forwarding to work here?

Marked As Solved

ostap

ostap

Turns out I misunderstood the options and the correct one is tcpip_tunnel_out, not tcpip_tunnel_in. (notice -R in my ssh command usage)

Where Next?

Popular in Questions Top

senggen
Erlang/OTP 25 [erts-13.2.2] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] 15:22:35.803 [error] gen_event {lager_file_backend...
New
pmjoe
I have a relationship of love and hate with Elixir. Lots of things are just absolutely right, but there are some things that are kind of ...
New
pgiesin
This should be a simple problem but I just can’t seem to figure it out. I have a standalone Elixir app that won’t find the database. Dep...
New
Kagamiiiii
Student & New to elixir. Nice language. I want to convert a english character, e.g. “a”, which is stored in a variable, to it’s asci...
New
stefanchrobot
What’s the safe way to decode a JSON string into a struct? I want to avoid calling String.to_atom. Jason.decode can give me a map with st...
New
minhajuddin
I have seen a lot of code which picks the first element from a list using Enum.at(0) instead of List.first. Is there a reason why people ...
New
rms.mrcs
Hi, I need to transform a list of numbers into a map where the keys are the indexes and the values are the original values of the list....
New
kostonstyle
Hi all I want to have a unix time, from the current time plus 1 hour. DateTime.now + 1 hour How to get it in elixir? Thanks
New
Exadra37
Sometimes I want to check if the input into a function is not a blank string. My first approach: defmodule Example do def do_stuff(s...
New
beno
I will often find my self writing things similar to: case some_value do nil -> something() "" -> something() _ -> someth...
New

Other popular topics Top

shahryarjb
Hello, I get Persian date from my client and convert it to normal calendar like this: def jalali_string_to_miladi_english_number(persi...
New
senggen
Erlang/OTP 25 [erts-13.2.2] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] 15:22:35.803 [error] gen_event {lager_file_backend...
New
dotdotdotPaul
Okay, I'm having a heck of a time trying to figure out how to best handle the validation of belongs_to associations in Ecto. I'm sure I'...
New
lessless
I believe there are people here who are dealing with CSV files import on the daily basis, and since Excel is a really popular tool there ...
New
albydarned
Hello all! I am typing this post from my new MacBook Pro with the M1 chip. I’m loving it so far, and will probably use it as my daily dr...
New
SoCreat
i’m a new one to elixir which editor can i use vs code? or atom? Thanks! :smiley:
New
baxterw3b
Hi guys, i’m new in the Elixir world, and i have to say, that i love it! i’m having some problem to understand anonymous functions with ...
New
Patoshizzle
After calling mix ecto.create I get this error: 17:00:32.162 [error] GenServer #PID<0.412.0> terminating ** (Postgrex.Error) FATAL...
New
9mm
I am constructing a JSON object (map) and I need to conditionally set a field. I’m trying to write proper elixir-way code… and I’m at a l...
New
skosch
To my knowledge, put_in, Map.update etc. all have the one limitation of not automatically creating intermediate keys when needed (for exa...
New

We're in Beta

About us Mission Statement