There are multiple options for the ssh client, please explore these by yourself if needed. This option is sometimes needed to forward a window to your local computer (Linux, or advanced windows users):
The -X option enables X11 forwarding via ssh, i.e., permits opening graphical windows. On Windows you need to enter these details to the ssh client.
Consider using a ~/.ssh/config configuration file to allow easier access like this:
and replacing [USERNAME] with your username. Using such a file allows to connect like this ssh login using the correct server adress and specified username.
Please note the special algorithms for ecaccess and of course ECMWF uses teleport now.
From eduroam: You should be able to log in as above.
From the outer world: use the VPN or login.img.univie.ac.at as jump host.
If you are a guest, you can apply for a guest u:account. This will give you access to eduroam and to the VPN. Your application needs to be endorsed by a staff member, who also determines the expiration date of the account. Please ask the sponsor first!
#!/usr/bin/env bash# By Michael Blaschek# Date 18.01.2021# CC BY 4.0 International# University of Vienna, Austria# Description:# Connect to Jet via a gateway server
help(){cat<<EOF$0 -g [gateway] -p [port] -r [remote-port] user@remoteOptions: -h Help -g [gateway] gateway server, e.g. user@login.univie.ac.at -p [port] port to forward from jet to local, e.g. VNC port -r [port] remote port if not the same as port -d debugExample: $0 -g [U:Account-Username]@login.univie.ac.at [Jet-Username]@jet01.img.univie.ac.atEOF}debug=''whilegetopts"g:p:r:hd"flag;docase"${flag}"ing)gateway=${OPTARG};;p)port=${OPTARG};;r)rport=${OPTARG};;d)debug='-v';;h|*)helpexit0;;esacdoneshift$((OPTIND-1))command=""remote=$1script=$(basename$0)if["${remote}"==""];thenecho"Remote host required: [user]@[server]"helpexit1fiif[-n"${port}"];then# -L local_port:destination_server_ip:remote_portif[-n"${rport}"];thenecho"Forwarding Port: $rport to $port"command="-L ${port}:localhost:${rport} "elseecho"Forwarding Port: $port to $port"command="-L ${port}:localhost:${port} "rport=$port# make sure we use thisfifi# Override Term information to make sure we use the ones on the servers# export TERM=xterm-256color# Check if names are in .ssh/configremote_status=falsegateway_status=falseif[-e$HOME/.ssh/config];then# check if hosts are therecat$HOME/.ssh/config|grep-i'Host ${remote}'>/dev/null
if[$?-eq0];thenremote_status=truefiif[-n${gateway}];thencat$HOME/.ssh/config|grep-i'Host ${gateway}'>/dev/null
if[$?-eq0];thengateway_status=truefififiif[-n"${gateway}"];thenecho"$gateway"|grep'@'>/dev/null
if[$?-eq1]&&[!$gateway_status];thenecho"Could fail if not: [user]@[server], trying: $gateway"fiif[-n"${port}"];thenecho"Using gateway: $gateway to $remote "midport=$(($RANDOM%1000+20000))# 20000 - 21000echo"Port Forwarding via the gateway: $port : $midport : $rport"ssh$debug-L${port}:localhost:${midport}-t$gatewayssh-L${midport}:localhost:${rport}${remote}echo"$(date) | ssh -L ${port}:localhost:${midport} -t $gateway 'ssh -L ${midport}:localhost:${rport}${remote}'">>.${script}.log
elseecho"Using gateway: $gateway to $remote "ssh$debug$command-t$gatewayssh${command}${remote}echo"$(date) | ssh $command -t $gateway 'ssh ${command}${remote}'">>.${script}.log
fielseif[!$remote_status];thenecho"Could fail if not: [user]@[server]"fiecho"Direct connection to: ${remote}"ssh$debug${command}${remote}echo"$(date) | ssh ${command}${remote}">>.${script}.log
fiecho"Command Log in .${script}.log"
There is also an option to forward a port, e.g. the VNC Port:
which allows you to connect to localhost:5901 and view the VNC session.
Tunneling
If you are connected to eduroam or you are on an external computer, you'll need to use an SSH tunnel. The instructions below refer to jet01, but you can do just the same with jet02.
Setup might be bit different for different clients, but all need these information:
Option Bitvise SSH Client/MobaXterm and RealVNC:
Start the SSH client
Go to tab "C2S" or SSH tunnels (port forwarding)
Set "Listen Interface" to 127.0.0.1
Set "Listening Port" to 5900+[DISPLAY], e.g., 5905
Set "Destination Host" to jet01.img.univie.ac.at
Set "Destination Port" to 5900+[DISPLAY]
Now start VncViewer and connect to 127.0.0.1:5900+[DISPLAY]
on Linux that is really simple:
ssh port forwarding
123
# REMOTEPORT -> to LOCALPORT
sshLOCALPORT:localhost:REMOTEPORTUSER@login
# connect to the local port
SSH config
On Linux the ssh processes can use a file $HOME/.ssh/config, which looks like this
ssh configuration
1 2 3 4 5 6 7 8 910111213141516171819202122232425
Host*IdentitiesOnly=yes
ServerAliveInterval60ServerAliveCountMax20Compressionyes
# will use any authentication possible (key, pass)
Hostlogin
Hostnamelogin.img.univie.ac.at
User[USERNAME]# use a specific ssh-key for that connection
Hostlogin-key
Hostnamelogin.img.univie.ac.at
User[USERNAME]IdentityFile~/.ssh/id_special
# force ssh to use password authentication
Hostloginx
HostNamelogin.img.univie.ac.at
User[USERNAME]PreferredAuthenticationspassword
PubkeyAuthenticationno
# use login as a jump host to reach JET
Hostlogin2jet1
Hostnamejet01.img.univie.ac.at
User[USERNAME]ProxyJumplogin
and contains information on SSH connections. Look at the specific definitions from ECMWF.
SSHFS
It is possible to mount your home directory to your personal computer on Linux via sshfs or using of course a dedicated remote file browser like: Filezilla, Cyberduck, ...
on Linux you need to install fuse2 and sshfs, the names might vary between distributions, but are all in the default repos.
Bash
1234
# connect to srvx1 using your home directory and a login directory on your local computer# mountserver [host] [remotedir] [localdir]
mkdir-p$HOME/login
mountserver[USER]@login.img.univie.ac.at/srvfs/home/[USER]$HOME/srvx1
SSH Banner
If you login in to any of the IMGW Servers you will be greeted by a banner showing some information about the system. However, after some time you might not need that information anymore.
run the following and you will never see the banner again.