knowledge-base:general:remote-access:ssh

This is an old revision of the document!


SSH Access

This page covers remotely accessing EECS Linux machines using SSH. SSH enables you to get a secure shell on a Linux machine. If you are running Linux with X Windows System (most distros are), MacOS with XQuartz installed, or a Windows application with X Forwarding (such as MobaXterm), you can also use X Forwarding to forward application windows to your computer. Please also read EECS Linux Systems And Duo Authentication.

Windows 10 (versions 1803 and up) and Windows 11 come with OpenSSH pre-installed, found at C:\Windows\System32\OpenSSH\ssh.exe. Using this tool, the instructions for connecting via SSH should be the same as with Linux or MacOS. However, since Windows historically has not featured a built-in SSH client, some alternatives exist.

  1. Open a PowerShell window (powershell.exe)
  2. You can now use the ssh command like on a Linux or Mac system.

If you wish to use X11-Forwarding, you will need to install an X11 server such as VcXsrv. Once you have an X11 server running, you will need to add -X -Y to your ssh command line to enable X11-forwarding. Please note that X11-Forwarding generally only works well over a local-area network and when accessing EECS systems from off-campus, may want to use VNC.

MobaXTerm is a commercial terminal and X11 server product for Windows.

  1. Install MobaXterm. The Home Edition will be sufficient to connect to EECS systems.
  2. Open MobaXterm.
  3. Select Sessions from the top ribbon and click “New Session”:
  4. Select the SSH tab.
  5. Enter the computer name in the Remote host field (e.g., comXXXX.eecs.utk.edu, hydraXX.eecs.utk.edu). Be sure to specify the entire host name including the eecs.utk.edu extension.
  6. Check the Specify username box and enter your Netid in the field:
  7. Click OK.

The SSH session should now open and prompt for a password. Log in with your Netid password, and you should get a shell prompt and a file browser on the left. The session should be automatically saved on the left side of the screen next time you open MobaXterm. MobaXterm automatically has X11 forwarding enabled, so you should be able to run GUI applications as well.

Putty is a free and open-source terminal program with SSH support for Windows.

  1. Install PuTTY. Download the MSI installer (64-bit in most cases) and run it to get PuTTY installed.
  2. Open PuTTY.
  3. Enter the computer name (e.g., comXXXX.eecs.utk.edu, hydraXX.eecs.utk.edu) in the Host Name field
  4. If you wish to save the connection, enter the name you want to use in the field under Saved Sessions and click Save
  5. Click Open
  6. Click Yes if prompted about the host key not being cached
  7. Enter your netid and netid password when prompted.

If you wish to use X11 over PuTTY, make sure you are running an X11 server such as VcXsrv. Then, before launching PuTTY, use the left sidebar and navigate to Connection→SSH→X11 and check “Enable X11 Forwarding” at the top.

MobaXTerm has a built-in SSH server which can be used for SSH X11-forwarding. This functionality should be turned on by default. You can double-check whether X11-Forwarding is enabled for your session in the “Advanced SSH settings” tab:

VcXsrv is a free and open-source X11 server for Windows. You will need to use an X11 server if you wish to use X11-Forwarding using a client without built-in X11 such as OpenSSH or Putty.

  1. Download the latest VcXsrv installer from https://sourceforge.net/projects/vcxsrv/files/vcxsrv/
  2. Run the installer and, once finished, launch the program. It will show up as “XLaunch” on your computer.
  3. Select “Multiple Windows” and set the “Display number” to 0, as shown below, then continue.
  4. Make sure “Start no client” is selected, then continue.
  5. On the “Extra settings” dialogue, leave all of the default options as shown below, then continue.
  6. You may be prompted to open firewall access for VcXsrv. Since this is unnecessary when using VcXsrv for SSH X11-forwarding, we recommend that you do not allow this.
  7. Before closing the configuration wizard, press “Save configuration”. This will create a shortcut on your desktop that you can run each time you wish to begin an X11 session.

Please note that the X11 server will run as a tray icon. If you wish to close VcXsrv, check your system tray in the lower right corner and right-click on the VcXsrv/X11 logo.

If you use MobaXterm SSH sessions, you automatically get a file transfer window when you login. However, if you set up a dedicated SFTP session, the DUO two-factor authentication prompt may be somewhat confusing. After starting a dedicated SFTP session, you will be prompted for a password as expected:
If required, the system will also prompt you for DUO authentication but will omit the usual request to enter '1' for a push notification, etc.:
.
You may now do one of the following:

  • Enter '1' to be sent a push notification to your primary DUO device.
  • Enter '2' to be sent an SMS with a passcode.
  • Enter a passcode directly from your DUO mobile app or from a dongle.

WinSCP is a dedicated SFTP/SCP client you can use for file transfers between EECS Linux systems and your Windows computer.

  1. Install WinSCP. During install, it may offer to import PuTTY sessions if you have any saved.
  2. Open WinSCP.
  3. You should be prompted with a Login window.
  4. Make sure that File Protocol is set to SFTP.
  5. Enter the computer name in the Host name field (e.g., hydraXX.eecs.utk.edu where XX is 0-30, make sure to include .eecs.utk.edu).
  6. Enter your NetID and NetID password in the login fields.
  7. Click Login:
  8. You may be prompted for DUO authentication. See EECS Linux Systems And Duo Authentication for more information.

You should now have two file browsers to transfer files between computers.

As both Linux and MacOS have a command-line SSH by default, it should be pretty simple to use.

  1. Open a terminal
  2. Use SSH to connect
    ~> ssh netid@comXXXX.eecs.utk.edu
    # replace comXXXX with the computer you are connecting, such as your computer or a lab computer (e.g., hydra20, tesla22)
  3. If it prompts to confirm that you wish to connect, verify that you are accessing the right computer and enter Y
  1. If you are running MacOS, install XQuartz or another X Forwarding application.
  2. Open a terminal
  3. Construct a command line with X Forwarding
    ~> ssh -XY netid@comXXXX.eecs.utk.edu
    # -XY enable X forwarding
  4. Run a GUI program, and its window should be forwarded to your computer.

the two command-line methods for transferring files are scp, and sftp.

SCP
  1. Open a terminal
  2. Construct a command line to copy files
    # From your machine to the one you are connecting to
    ~> scp /path/to/file netid@system.eecs.utk.edu:/path/where/you/want/to/copy
    # From the other machine to your machine
    ~> scp netid@system.eecs.utk.edu:/path/to/file /path/to/save/on/your/computer
SFTP
  1. Open a terminal
  2. Open an interactive SFTP session:
    sftp netid@system.eecs.utk.edu
    Connected to system.eecs.utk.edu.
    sftp> help
    Available commands:
    bye                                Quit sftp
    cd path                            Change remote directory to 'path'
    chgrp [-h] grp path                Change group of file 'path' to 'grp'
    chmod [-h] mode path               Change permissions of file 'path' to 'mode'
    chown [-h] own path                Change owner of file 'path' to 'own'
    copy oldpath newpath               Copy remote file
    cp oldpath newpath                 Copy remote file
    df [-hi] [path]                    Display statistics for current directory or
                                       filesystem containing 'path'
    exit                               Quit sftp
    get [-afpR] remote [local]         Download file
    help                               Display this help text
    lcd path                           Change local directory to 'path'
    lls [ls-options [path]]            Display local directory listing
    lmkdir path                        Create local directory
    ln [-s] oldpath newpath            Link remote file (-s for symlink)
    lpwd                               Print local working directory
    ls [-1afhlnrSt] [path]             Display remote directory listing
    lumask umask                       Set local umask to 'umask'
    mkdir path                         Create remote directory
    progress                           Toggle display of progress meter
    put [-afpR] local [remote]         Upload file
    pwd                                Display remote working directory
    quit                               Quit sftp
    reget [-fpR] remote [local]        Resume download file
    rename oldpath newpath             Rename remote file
    reput [-fpR] local [remote]        Resume upload file
    rm path                            Delete remote file
    rmdir path                         Remove remote directory
    symlink oldpath newpath            Symlink remote file
    version                            Show SFTP version
    !command                           Execute 'command' in local shell
    !                                  Escape to local shell
    ?                                  Synonym for help
  3. Use the various commands to transfer files between your computer and the remote system.
Notes

In the above examples replace “system.eecs.utk.edu” with the appropriate host name, e.g. hydra5.eecs.utk.edu. It is worth noting that, unless your computer is setup uniquely, your account on all EECS Linux machines should have the same filesystem. So you shouldn't ever have to copy files from hydra21.eecs.utk.edu to hydra0.eecs.utk.edu.
Various graphical SFTP clients are available for MacOS, including Cyberduck.