<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="lt">
	<id>https://wiki.eofnet.lt/w//index.php?action=history&amp;feed=atom&amp;title=Raspberry_reverse_ssh</id>
	<title>Raspberry reverse ssh - Versijų istorija</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.eofnet.lt/w//index.php?action=history&amp;feed=atom&amp;title=Raspberry_reverse_ssh"/>
	<link rel="alternate" type="text/html" href="https://wiki.eofnet.lt/w//index.php?title=Raspberry_reverse_ssh&amp;action=history"/>
	<updated>2026-04-19T12:25:17Z</updated>
	<subtitle>Šio puslapio versijų istorija projekte</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://wiki.eofnet.lt/w//index.php?title=Raspberry_reverse_ssh&amp;diff=8842&amp;oldid=prev</id>
		<title>\dev\null: autossh vietoje while :)</title>
		<link rel="alternate" type="text/html" href="https://wiki.eofnet.lt/w//index.php?title=Raspberry_reverse_ssh&amp;diff=8842&amp;oldid=prev"/>
		<updated>2019-04-18T13:27:07Z</updated>

		<summary type="html">&lt;p&gt;autossh vietoje while :)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Naujas puslapis&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Šis būdas padės prisijungti prie [[RaspberryPI]] nors šis bus už [[firewall]]/[[nat]]. [[RaspberryPI]] inicijuos prisijungimą (reverse connection) į nutolusį serverį ir ten atidarys ssh pasiklausymo prievadą į kurį galima bus prisijungti iš pačio serverio. Daugiau jokių portų fowardinimų ir kitokio laiko gaišimo!&lt;br /&gt;
== RaspberryPI pusės konfigūravimas ==&lt;br /&gt;
 apt install autossh&lt;br /&gt;
Naudosime prievadą 20000, įdedame šį failą į '''/usr/local/bin/reverse_ssh''', prieš tai surašome mums būtinas reikšmes:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
RPI_PORT=20000&lt;br /&gt;
REMOTE_PORT=220&lt;br /&gt;
REMOTE_ADDRESS=vardas@xxxx.eofnet.lt&lt;br /&gt;
IDENTITY=&amp;quot;~/.ssh/id_rsa&amp;quot;&lt;br /&gt;
WAIT_SECONDS=60&lt;br /&gt;
&lt;br /&gt;
autossh -i $IDENTITY -o ServerAliveInterval=60 \&lt;br /&gt;
    -o ServerAliveCountMax=2 \&lt;br /&gt;
    -o StrictHostKeyChecking=no \&lt;br /&gt;
    -o UserKnownHostsFile=/dev/null \&lt;br /&gt;
    -o ConnectTimeout=15 \&lt;br /&gt;
    -N -R $RPI_PORT:localhost:22 $REMOTE_ADDRESS -p $REMOTE_PORT&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Įgaliname failą pasileisti:&lt;br /&gt;
 chmod +x /usr/local/bin/reverse_ssh&lt;br /&gt;
Kaip jau pastebėjote naudosime [[SSH_Pubkey_Serveriuose|ssh public key]] autentifikaciją (taip neiškils papildomų saugumo klausimų)&lt;br /&gt;
&lt;br /&gt;
Systemd servisas (/etc/systemd/system/reverse_ssh.service):&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=Reverse SSH service&lt;br /&gt;
 After=network.target&lt;br /&gt;
 [Service]&lt;br /&gt;
 WorkingDirectory=/etc&lt;br /&gt;
 ExecStart=/usr/local/bin/reverse_ssh&lt;br /&gt;
 Restart=always&lt;br /&gt;
 RestartSec=3&lt;br /&gt;
 User=root&lt;br /&gt;
 Group=root&lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
Nurodome, kad startuotų automatiškai sistemos krovimosi metu ir įjungiame:&lt;br /&gt;
 systemctl enable reverse_ssh&amp;amp;&amp;amp;systemctl start reverse_ssh&lt;br /&gt;
&lt;br /&gt;
== Nutolęs serveris ==&lt;br /&gt;
Nutolusio serverio ssh servisas turi būti pasiekiamas iš išorės (jeigu reikia praforwardiname į jį prievadus). Nutolusiame serveryje sukuriame home direktorijoje faila '''$HOME/raspberries''', į jį įrašysime portus ir raspberių pavadinimus, kad galėtume juos lengviau pasiekti su prisijungimo įrankiu:&lt;br /&gt;
 20000 RetroPie&lt;br /&gt;
 20001 CAM1-2&lt;br /&gt;
 20002 RelaySwitch&lt;br /&gt;
&lt;br /&gt;
 apt install dialog&lt;br /&gt;
&lt;br /&gt;
Pats prisijungimo įrankis:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# prereq: apt install dialog&lt;br /&gt;
&lt;br /&gt;
HEIGHT=15&lt;br /&gt;
WIDTH=40&lt;br /&gt;
CHOICE_HEIGHT=4&lt;br /&gt;
BACKTITLE=&amp;quot;Raspberry Reverse IP Connections&amp;quot;&lt;br /&gt;
TITLE=&amp;quot;Select connection&amp;quot;&lt;br /&gt;
MENU=&amp;quot;Choose one of the following options:&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if [ -f &amp;quot;$HOME/raspberries&amp;quot; ]; then&lt;br /&gt;
settings=&amp;quot;$HOME/raspberries&amp;quot;&lt;br /&gt;
elif [ -f &amp;quot;/etc/mods/raspberries&amp;quot; ]; then&lt;br /&gt;
settings=&amp;quot;/etc/mods/raspberries&amp;quot;&lt;br /&gt;
else&lt;br /&gt;
echo &amp;quot;We cannot file configuration file in either /etc/mods/raspberries nor in $HOME/raspberries&amp;quot;&lt;br /&gt;
echo &amp;quot;You should create this file and specify your raspberries in the following order&amp;quot;&lt;br /&gt;
echo &amp;quot;&amp;lt;port&amp;gt; &amp;lt;name&amp;gt;&amp;quot;&lt;br /&gt;
echo &amp;quot;Example.: &amp;quot;&lt;br /&gt;
echo &amp;quot;2222 RetroPie&amp;quot;&lt;br /&gt;
exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
while read i; do&lt;br /&gt;
    OPTIONS+=($i)&lt;br /&gt;
done &amp;lt; $settings&lt;br /&gt;
&lt;br /&gt;
CHOICE=$(dialog --clear \&lt;br /&gt;
                --backtitle &amp;quot;$BACKTITLE&amp;quot; \&lt;br /&gt;
                --title &amp;quot;$TITLE&amp;quot; \&lt;br /&gt;
                --menu &amp;quot;$MENU&amp;quot; \&lt;br /&gt;
                $HEIGHT $WIDTH $CHOICE_HEIGHT \&lt;br /&gt;
                &amp;quot;${OPTIONS[@]}&amp;quot; \&lt;br /&gt;
                2&amp;gt;&amp;amp;1 &amp;gt;/dev/tty)&lt;br /&gt;
&lt;br /&gt;
LINE=`cat $settings|grep $CHOICE`&lt;br /&gt;
if [ &amp;quot;$LINE&amp;quot; == &amp;quot;&amp;quot; ]; then&lt;br /&gt;
echo &amp;quot;We got empty choice, exiting...&amp;quot;&lt;br /&gt;
exit 1&lt;br /&gt;
fi&lt;br /&gt;
name=&amp;quot;$(cut -d' ' -f2 &amp;lt;&amp;lt;&amp;lt;&amp;quot;$LINE&amp;quot;)&amp;quot;&lt;br /&gt;
port=&amp;quot;$(cut -d' ' -f1 &amp;lt;&amp;lt;&amp;lt;&amp;quot;$LINE&amp;quot;)&amp;quot;&lt;br /&gt;
clear&lt;br /&gt;
echo &amp;quot;Connecting to $name using port $port...&amp;quot;&lt;br /&gt;
ssh root@localhost -p $port&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 chmod +x raspberry_connect&lt;br /&gt;
 ./raspberry_connect&lt;br /&gt;
&lt;br /&gt;
== Screens ==&lt;br /&gt;
&lt;br /&gt;
[[Vaizdas:Screenshot 2019-04-18 at 16.05.10.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Scripts]]&lt;br /&gt;
[[Category:Tinklas]]&lt;br /&gt;
{{Template:Distributions}}&lt;/div&gt;</summary>
		<author><name>\dev\null</name></author>
	</entry>
</feed>