Automatiskt reverse ssh tunnel script

Permalänk
Avstängd

Automatiskt reverse ssh tunnel script

Hej!!

Jag har en raspberry pi som skall ansluta automatiskt till min "man in the middle" server, så jag sedan kan komma åt den hemma då det är omöjligt att öppna portar etc där den står nu.

Har ändrat sshporten till 2323 om ni undrar.

jag använder följande:

ssh -R 2210:localhost:2323 minandra.server

Sedan när man kommit in, kör det via en nyckel så behöver inte ange lösenord , så måste man ange

ssh -p 2210 rpi@localhost

Om jag vill ha detta automatiserat vilket är då det bästa sättet?
Varje gång raspberryn startar skall alltså detta script köras, problemet är att jag får ange lösenordet när jag kör sista koden, antar att man kan lösa det med en nyckel också?

Någon som har nåt enkelt sätt att lösa detta på?

Permalänk
Medlem

jag gjorde ett expect-script för liknande ändamål vid något tillfälle:

#!/usr/bin/expect -f if {$argc != 7} { puts "Usage: ./sshrevtun <localhost> <localport> <user> <host> <remoteport> <password> <remotebindport>" exit 0 } proc exit_timeout {} { puts "Error: timeout" exit 1 } proc exit_unexpected {data} { set data [string trim $data] puts "Error: unexpected response: $data" exit 1 } trap { if {$thispid != 0} { wait exit 0 } } SIGCHLD log_user 0 set connectcatch "connected" set localhost [lindex $argv 0] set localport [lindex $argv 1] set user [lindex $argv 2] set host [lindex $argv 3] set remoteport [lindex $argv 4] set password [lindex $argv 5] set remotebindport [lindex $argv 6] set thispid [fork] if {$thispid != 0} { sleep 20 } else { spawn ssh -o "StrictHostKeyChecking no" -f -R $remotebindport:$localhost:$localport $user@$host -p $remoteport "echo $connectcatch && sleep 3600" expect { timeout exit_timeout eof {exit_unexpected $expect_out(buffer)} "assword:" } send $password\n expect { "assword:" {exit_unexpected $expect_out(buffer)} "ermission" {exit_unexpected $expect_out(buffer)} eof {exit_unexpected $expect_out(buffer)} timeout exit_timeout $connectcatch } puts "Success! Tunnel will stay open for 1 hour." disconnect }