<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/2000/REC-xhtml1-20000126/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
<style type="text/css">
/* <![CDATA[ */ @import "/branding/css/tigris.css"; /* ]]> */
</style>
  <script src="/branding/scripts/sc.js" type="text/javascript"></script>
  <link rel="stylesheet" type="text/css" href="/branding/css/print.css" media="print" />

  <title>Using the desktop</title>
 </head>

 <body class="docs" onload="self.focus()">
  <div class="docs" id="ddsshguideterminals">
   <h2>Using the Desktop Terminals</h2>

   <div id="toc">
    <ul>
     <li><strong><a href="/nonav/servlets/HelpTOC">Help index</a></strong></li>
    </ul>

    <ul>
     <li>
      <a href="/nonav/docs/ddSSHGuide.html">About this guide</a> 

      <ul>
       <li><a href="/nonav/docs/ddSSHGuide.html#aboutssh">About SSH</a></li>

       <li><a href="/nonav/docs/ddSSHGuide.html#furtherdocumentation">Further documentation</a></li>
      </ul>
     </li>

     <li><a href="/nonav/docs/ddSSHGuideConcepts.html">Concepts</a></li>

     <li><a href="/nonav/docs/ddSSHGuideTerminals.html">Choosing the desktop terminal</a></li>

     <li>
      Using the Desktop Terminal 

      <ul>
       <li><a href="#macs">Macintosh</a></li>

       <li><a href="#windows">Windows</a></li>

       <li><a href="#othersshclients">Other SSH clients</a></li>
      </ul>
     </li>

     <li><a href="/nonav/docs/ddSSHGuideCygwin.html">Tunneling using Cygwin: The Desktop Unix Emulator</a></li>

     <li><a href="/nonav/docs/ddSSHGuideterminating.html">Terminating the tunnel</a></li>
    </ul>
   </div>

   <h3>Necessities</h3>

   <dl>
    <dt>Hostname</dt>

    <dd><code>thisdomain.com</code></dd>

    <dt>Local port:</dt>

    <dd><code>2401</code></dd>

    <dt>Remote port:</dt>

    <dd><code>2401</code></dd>

    <dt>Username:</dt>

    <dd><code>tunnel</code></dd>

    <dt>User password:</dt>

    <dd><code>tunnel</code></dd>
   </dl>

   <h3><a id="macs" name="macs">Macintosh</a></h3>

   <ul>
    <li><a href="http://www.macssh.com">MacSSH</a></li>

    <li><a href="http://www.lysator.liu.se/~jonasw/freeware/niftyssh/">NiftyTelnet SSH</a></li>
   </ul>

   <p>Both Mac clients offer intuitive interfaces; both also are well-documented. For that reason, this discussion of the Mac clients is very brief. However, for both clients, the important information is the same as for the Windows clients: the hostname and ports must be correctly specified.</p>

   <h3><a id="windows" name="windows">Windows</a></h3>

   <p>Two free clients for Windows provide SSH tunneling:</p>

   <ul>
    <li><a href="http://www.zip.com.au/~roca/ttssh.html">TTSSH</a>, an open-source add-on to Tera Term Pro</li>

    <li><a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/">PuTTY</a>, a free implementation of Telnet and SSH for Win32 platforms. It also provides an XTerm terminal emulator.</li>
   </ul>

   <p>As with the Mac clients, the important things to keep in mind are the hostname and the port numbers. For both terminals, the configuration process is straightforward. Because TTSH is an add-on to Tera Term, it means you have to go through that one extra step before SSH functionality is possible. [A fuller description of tunneling with TTSH is being drafted and will be posted when finished. For now, please see TTSH's <a href="http://www.zip.com.au/~roca/ttssh.html">website</a>.]</p>

   <p>PuTTY, on the other hand, does not allow you to easily configure the client to handle port forwarding. As a result, it is not recommended for tunneling.</p>

   <h3><a id="othersshclients" name="othersshclients">SecureCRT and F-Secure SSH</a></h3>

   <p>Both these clients are fairly easy to use and configure for SSH1 tunneling. The information you will need--doubtless familiar by now--is listed below.</p>

   <p>The following illustrates the procedure; we will use SecureCRT (version 3.1.2):</p>

   <ol>
    <li>Open a new session, specifying "SSH1" in the pull-down menu.</li>

    <li>For "Hostname," enter "<code>thisdomain.com</code>."</li>

    <li>Click on the "Advanced" button by "Hostname."</li>

    <li>Once in the Advanced section, click on the "Port Forwarding" tab.</li>

    <li>For "Local port," enter "<code>2401</code>."</li>

    <li>For "Remote port" enter "<code>2401</code>."</li>

    <li>For Username, enter "<code>tunnel</code>."</li>

    <li>For User password, enter "<code>tunnel</code>."</li>

    <li>For "Remote hostname," enter "<code>localhost</code>."</li>

    <li>Enter "Save" and "OK" to exit the dialog box.</li>

    <li>Back in the main connection page. . . .</li>

    <li>Leave the defaults for "Cipher" and "Authentication" as they are.</li>

    <li>Click on "Connect."</li>

    <li>The server should then prompt for your password. It is "<code>tunnel</code>."</li>

    <li>If this is your first time, the client will tell you that no "host key" for the server has been found and ask if you want to continue. Answer yes.</li>

    <li>You are now tunneling.</li>

    <li>The terminal screen does not show a prompt. That's how it should be. The tunnel has been established. You are now ready to begin using CVS securely.</li>
   </ol>

   <p>We discuss how to use the open-source desktop Unix emulator for Windows, Cygwin, in the section titled, <a href="/nonav/docs/ddSSHGuideCygwin.html">Tunneling using Cygwin</a>. Because Cygwin does emulate a Unix environment, complete with many Unix commands, those who are tunneling from a Unix-like environment (say, from a Linux machine), can refer to the discussion on Cygwin.</p>

   <div class="courtesylinks">
    <p><a href="#toc">Top</a> | <a href="/nonav/servlets/HelpTOC">Help index</a></p>
   </div>
  </div>
 </body>
</html>


