<?xml version="1.0" encoding="utf-8"?><!DOCTYPE article  PUBLIC '-//OASIS//DTD DocBook XML V4.4//EN'  'http://www.docbook.org/xml/4.4/docbookx.dtd'><article><articleinfo><title>ProxyBySsh</title><revhistory><revision><revnumber>31</revnumber><date>2026-02-25 10:42:06</date><authorinitials>crose</authorinitials></revision><revision><revnumber>30</revnumber><date>2025-07-27 13:49:16</date><authorinitials>crose</authorinitials></revision><revision><revnumber>29</revnumber><date>2021-02-04 16:23:12</date><authorinitials>eseide</authorinitials></revision><revision><revnumber>28</revnumber><date>2021-02-04 16:22:56</date><authorinitials>eseide</authorinitials></revision><revision><revnumber>27</revnumber><date>2021-02-04 16:20:38</date><authorinitials>eseide</authorinitials></revision><revision><revnumber>26</revnumber><date>2021-02-04 16:20:05</date><authorinitials>eseide</authorinitials></revision><revision><revnumber>25</revnumber><date>2020-05-06 09:00:24</date><authorinitials>crose</authorinitials></revision><revision><revnumber>24</revnumber><date>2020-05-06 09:00:07</date><authorinitials>crose</authorinitials></revision><revision><revnumber>23</revnumber><date>2020-05-06 08:56:21</date><authorinitials>crose</authorinitials></revision><revision><revnumber>22</revnumber><date>2020-05-06 08:54:35</date><authorinitials>crose</authorinitials></revision><revision><revnumber>21</revnumber><date>2020-05-06 08:49:49</date><authorinitials>megger</authorinitials></revision><revision><revnumber>20</revnumber><date>2020-05-06 08:48:30</date><authorinitials>megger</authorinitials></revision><revision><revnumber>19</revnumber><date>2020-05-06 08:45:38</date><authorinitials>megger</authorinitials></revision><revision><revnumber>18</revnumber><date>2020-04-11 07:38:19</date><authorinitials>crose</authorinitials></revision><revision><revnumber>17</revnumber><date>2020-04-11 07:38:04</date><authorinitials>crose</authorinitials></revision><revision><revnumber>16</revnumber><date>2020-04-11 07:08:29</date><authorinitials>crose</authorinitials></revision><revision><revnumber>15</revnumber><date>2020-04-11 07:07:39</date><authorinitials>crose</authorinitials></revision><revision><revnumber>14</revnumber><date>2020-04-11 07:07:09</date><authorinitials>crose</authorinitials></revision><revision><revnumber>13</revnumber><date>2020-04-11 07:06:08</date><authorinitials>crose</authorinitials></revision><revision><revnumber>12</revnumber><date>2020-04-11 07:05:25</date><authorinitials>crose</authorinitials></revision><revision><revnumber>11</revnumber><date>2020-04-11 06:43:02</date><authorinitials>crose</authorinitials></revision><revision><revnumber>10</revnumber><date>2020-04-11 06:42:38</date><authorinitials>crose</authorinitials></revision><revision><revnumber>9</revnumber><date>2020-04-11 06:42:03</date><authorinitials>crose</authorinitials></revision><revision><revnumber>8</revnumber><date>2020-04-11 06:41:30</date><authorinitials>crose</authorinitials></revision><revision><revnumber>7</revnumber><date>2020-04-10 09:16:03</date><authorinitials>crose</authorinitials></revision><revision><revnumber>6</revnumber><date>2020-04-10 09:14:37</date><authorinitials>crose</authorinitials></revision><revision><revnumber>5</revnumber><date>2020-04-10 09:07:25</date><authorinitials>crose</authorinitials></revision><revision><revnumber>4</revnumber><date>2020-04-10 09:06:17</date><authorinitials>crose</authorinitials></revision><revision><revnumber>3</revnumber><date>2020-04-10 09:05:53</date><authorinitials>crose</authorinitials></revision><revision><revnumber>2</revnumber><date>2020-04-10 09:04:52</date><authorinitials>crose</authorinitials></revision><revision><revnumber>1</revnumber><date>2020-04-10 09:02:10</date><authorinitials>crose</authorinitials></revision></revhistory></articleinfo><section><title>(Web) Proxy by SSH</title><para>To get Web access to the I-MATH intranet webserver it is possible to set up a SOCKS SSH proxy channel. This setting is not persistent, start it when you need it. </para><para>The proxy configuration can be done: </para><itemizedlist><listitem><para>on the OS - <emphasis>not described here</emphasis>. </para></listitem><listitem><para>via commandline - described here for <emphasis>Google Chrome</emphasis> and <emphasis>Opera</emphasis>. </para></listitem><listitem><para>inside the browser via GUI - described here for <emphasis>Firefox</emphasis>. </para></listitem></itemizedlist><section><title>SSH Proxy</title><itemizedlist><listitem><para>Use SSH </para><itemizedlist><listitem><para>Linux &amp; Mac OS X: preinstalled. </para></listitem><listitem><para>Windows: <ulink url="https://www.howtogeek.com/336775/how-to-enable-and-use-windows-10s-built-in-ssh-commands/"/> </para></listitem></itemizedlist></listitem><listitem><para>Open a terminal and start the SSH Socks connection (I-MATH password): </para><screen><![CDATA[ssh -C -D 1080 -N -q <I-MATH account>@ssh.math.uzh.ch &]]></screen></listitem><listitem><para>Define an alias to use it as a onliner (kill's stale ssh proxy connections first) </para><screen><![CDATA[alias google-chrome-math='OLD=`ps -ef  | grep  "ssh -C -D 1080 -N" | grep -v grep | awk "{ print \\$2 }"`; for II in $OLD; do kill $II; done; (ssh -C -D 1080 -N -q ssh.math.uzh.ch & ); google-chrome --proxy-server="socks5://localhost:1080"']]></screen></listitem></itemizedlist></section><section><title>Browser</title><para>To use the I-MATH internal DNS Server (necessary to get access to hostnames that are only known inside of I-MATH), use the SOCKS5 protocol <emphasis role="strong">incl. DNS forward</emphasis>. </para><para>For Google Chrome or Opera, <emphasis role="strong">open a second terminal</emphasis> and type the following command. </para><informaltable><tgroup cols="2"><colspec colname="col_0"/><colspec colname="col_1"/><tbody><row rowsep="1"><entry colsep="1" rowsep="1"><para>Browser </para></entry><entry colsep="1" rowsep="1"><para>Command </para></entry></row><row rowsep="1"><entry colsep="1" rowsep="1"><para>Google Chrome (see also <ulink url="https://wiki.math.uzh.ch/public/ProxyBySsh#Advanced_Setup:_Google_Chrome_Proxy_Switch">advanced</ulink>) </para></entry><entry colsep="1" rowsep="1"><para>Linux: <code>google-chrome --proxy-server=&quot;socks5://localhost:1080&quot;</code></para><para>Mac OS X: <code>/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --proxy-server=&quot;socks5://localhost:1080&quot;</code> </para></entry></row><row rowsep="1"><entry colsep="1" rowsep="1"><para>Opera </para></entry><entry colsep="1" rowsep="1"><para>Linux: <code>opera --proxy-server=&quot;socks5://localhost:1080&quot;</code></para><para>Mac OS X: <code>/Applications/Opera.app/Contents/MacOS/Opera --proxy-server=&quot;socks5://localhost:1080&quot;</code> </para></entry></row></tbody></tgroup></informaltable><itemizedlist><listitem><para>Firefox </para><itemizedlist><listitem><para>There is no official option '-proxy-server' for the command line </para></listitem><listitem><para>Start firefox, open 'settings', navigate to 'network' &gt; <emphasis>see screenshot</emphasis> </para></listitem></itemizedlist></listitem></itemizedlist><para><inlinemediaobject><imageobject><imagedata fileref="https://wiki.math.uzh.ch/public/ProxyBySsh?action=AttachFile&amp;do=get&amp;target=ff-proxy.png"/></imageobject><textobject><phrase>ff-proxy.png</phrase></textobject></inlinemediaobject> </para></section><section><title>FAQ</title><itemizedlist><listitem><para>Q: Can I configure Google Chrome / Opera via GUI like Firefox </para><itemizedlist><listitem><para>A: yes - just check the 'network' seetings. </para></listitem></itemizedlist></listitem><listitem><para>Q: Why should I start Google Chrome / Opera via command line? </para><itemizedlist><listitem><para>A: This is a very quick way to use the proxy. If you do not need it, start the browser via mouse. </para></listitem></itemizedlist></listitem><listitem><para>Q: Can I automate the steps? </para><itemizedlist><listitem><para>A: yes. A small bash script should do the trick:  </para><screen><![CDATA[#!/bin/bash
]]><![CDATA[
nohup google-chrome --proxy-server="socks5://localhost:1080" & ssh -C -D 1080 <I-MATH account>@ssh.math.uzh.ch ]]></screen></listitem></itemizedlist></listitem><listitem><para>Check <ulink url="https://wiki.math.uzh.ch/public/ProxyBySsh/public/ssh#Working_with_SSH_Keys">SSH Keys</ulink> to setup password less SSH login. </para></listitem><listitem><para>Q: in Firefox I don't like to toggle the proxy on/off all the time - is there a better way? </para><itemizedlist><listitem><para>A: Create an additional profile 'proxy'. Start Firefox via Terminal <code>firefox -P</code>, create the profile, use it and do the proxy config there. </para></listitem></itemizedlist></listitem></itemizedlist></section><section><title>Advanced Setup: Google Chrome Proxy Switch</title><para>Install and configure the Google Chrome extension <ulink url="https://chrome.google.com/webstore/detail/proxy-switchyomega/padekgcemlokbadohgkifijomclgjgif?hl=en">SwitchyOmega</ulink> to automatically switch proxy for certain URLs.  </para><para>Configurations: <inlinemediaobject><imageobject><imagedata fileref="https://wiki.math.uzh.ch/public/ProxyBySsh?action=AttachFile&amp;do=get&amp;target=switchyOmega_proxy.png"/></imageobject><textobject><phrase>switchyOmega_proxy.png</phrase></textobject></inlinemediaobject> <inlinemediaobject><imageobject><imagedata fileref="https://wiki.math.uzh.ch/public/ProxyBySsh?action=AttachFile&amp;do=get&amp;target=switchyOmega_autoswitch.png"/></imageobject><textobject><phrase>switchyOmega_autoswitch.png</phrase></textobject></inlinemediaobject> </para></section></section></article>