Site Tools


router_to_router_ssh

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
router_to_router_ssh [2023/05/23 15:26] hogwildrouter_to_router_ssh [2023/05/23 18:06] – [Overview] -added subhead "Setting up/Eablishing a tunnel" hogwild
Line 3: Line 3:
 ===== Overview ===== ===== Overview =====
  
-This setup allows a primary router, (the "SSH Client") to control a secondary router (the "SSH Host"), from the command-line, via an encrypted connection.+This setup allows a primary router, (the "SSH Client") to control a secondary router (the "SSH Host"), from the command-line, through an encrypted (tunnel) connection.
  
-FreshTomato includes [[https://matt.ucc.asn.au/dropbear/dropbear.html|Dropbear]], an SSH client/server program. Dropbear can generate an encryption KeyPair that offers password-less connections. A command is run on the primary router which generates a public key.  That Public Key must then be entered into the secondary router’s //Authorized Keys //field, in the SSH Daemon section of the [[:admin_access|Admin Access]] menu.\\  \\ This can be useful, for example:+FreshTomato includes [[https://matt.ucc.asn.au/dropbear/dropbear.html|Dropbear]], an SSH client/server program. Dropbear can generate an encryption KeyPair that offers passwordless connections. A command is run on the primary router which generates a public key.  That Public Key must then be entered into the secondary router’s //Authorized Keys //field, in the SSH Daemon section of the [[:admin_access|Admin Access]] menu.\\  \\ This can be useful, for example:
  
-  * When the the secondary router system does not maintain its system clock, and time-sensitive jobs must be scheduled. +  * When the the secondary router system doesn'maintain system clock, and time-sensitive jobs must be scheduled. 
-  * For running scripts on the secondary router for any supported command.+  * For running scripts on the secondary router using any supported commands. 
 +  * As seen below, for switching wireless radio(s) on or off on a schedule (not shown).
  
- As seen below, for switching wireless radio(s) on or off to schedule (not shown).+=====  Setting up/Establishing Tunnel =====
  
-  - On the primary router (the one issuing SSH commands) type the command: \\ **dropbearkey -t rsa -f ~/.ssh/id_dropbear** command to generate the KeyPair. \\ This will display result similar to that shown below. Leave this window open. \\ You will need it for step 2.+Follow these steps to generate a Keypair and establish an SSH tunnel:
  
-\\ {{:pasted:20210921-152323.png}}+  - On the primary router (the one issuing SSH commands) generate a Keypair by typing the command: \\ "dropbearkey -t rsa -f ~/.ssh/id_dropbear" \\ \\ This will display a result similar to that shown below. Leave this window open, as you'll need it for step 2. \\ \\ {{:pasted:20210921-152323.png?744}} \\ \\  
 +  - Copy the Public key portion from the primary router and paste it into the “Authorized Keys” field in secondary router: \\ \\ {{:pasted:20210921-152415.png?739}} \\ \\  
 +  - In the above screenshot, a pre-existing, unrelated key was redacted. \\ \\  
 +  - Now, connect to the secondary router via an SSH session (running on the primary router).  \\ The example below uses the //nvram// command to display the hostname. \\ The first command string ("ssh root@192.168.10.1 nvram get lan_hostname")** **executes the command on the secondary router and then it [nvram get lan_hostname] is executed locally, on the primary router. \\ \\ \\ {{:pasted:20210921-152503.png?741}}
  
-\\  \\+ \\
  
-  - Copy and paste the Public key portion from the primary router \\ to the secondary router’s “Authorized Keys” field, as seen below:+ \\
  
-\\ {{:pasted:20210921-152415.png}} 
  
-Note that a pre-existing, and unrelated key is redacted above.  \\  \\  \\+===== Usage Example =====
  
-  - Now, connect to the secondary router from within an SSH session (running on the primary router). The example below uses the **nvram** command to display the host nameThe first command string (**ssh root@192.168.10.1 nvram get lan_hostname) **executes the command on the secondary router and then it [nvram get lan_hostname] is executed locally, on the primary router.+This example will enable/disable the eth1 5Ghz WiFi interface on the secondary router. (Temperature is shown only when the interface is enabled) \\  \\
  
-\\ {{:pasted:20210921-152503.png}} +  - This screenshot shows the status display of the Primary router before before the command is run: \\ \\ {{:pasted:20210921-152542.png?736}} \\ \\  
- +  Now, we run the command (//ssh root@192.168.10.1 radio toggle 1//): \\ \\ {{:pasted:20210921-152607.png?744}} \\ \\  
-==== Example ==== +  - This shows the status display after the command is run: \\ \\ {{:pasted:20210921-152637.png?761}} \\  \\ Since "radio toggle 1" is  a toggle switch, if the same command is repeated, the eth1 interface will be disabled on the primary router.
- +
-This example will enable/disable the eth1 5Ghz Wi-Fi interface on the secondary router. (Temperature is shown only when the interface is on).  \\  \\ +
- +
-  - This shows the status display before ([Primary router) the command is run:\\ {{:pasted:20210921-152542.png}}+
  
 \\ \\
  
-  - Here, the command (**ssh root@192.168.10.1 radio toggle 1**) executed:\\ {{:pasted:20210921-152607.png}} + \\
- +
-  - And here is the status display after the command is run.+
  
-{{:pasted:20210921-152637.png}} \\  \\ If the same command is repeated, the eth1 interface will be disabled on the primary router. 
  
 ===== Notes ===== ===== Notes =====
  
-  * SSH must be enabled on both routers. +  * The SSH daemon must be enabled on both routers. 
-  * The key generated will be erased after a reboot of the primary router. Either keep a copy of the "id_dropbear" file offline (on a flash drive, or CIFS Client share) for restoration, or be prepared to repeat the procedure (HOWTO steps 1 and 2) after a reboot, removing any redundant key from the secondary router during the process.+  * The key generated will be erased after a reboot of the Primary router. 
 +    * Either keep a copy of the "id_dropbear" file offline (on a flash drive, or CIFS Client share) for restoration, or
 +    * Be prepared to repeat (steps 1and 2.) after a reboot, removing any redundant key from the secondary router.
   * This guide was produced using [[https://www.chiark.greenend.org.uk/~sgtatham/putty/|PuTTY]] v0.76 and FreshTomato release 2021.5.   * This guide was produced using [[https://www.chiark.greenend.org.uk/~sgtatham/putty/|PuTTY]] v0.76 and FreshTomato release 2021.5.
   * Inspiration was provided by [[https://blog.michael.franzl.name/2017/09/03/set-passwordless-ssh-login-dropbear-client/|this]] article.    * Inspiration was provided by [[https://blog.michael.franzl.name/2017/09/03/set-passwordless-ssh-login-dropbear-client/|this]] article. 
router_to_router_ssh.txt · Last modified: 2023/05/24 02:08 by hogwild