SSH and SCP

From Arbeitsgruppe Kuiper
Revision as of 12:35, 30 December 2023 by Gabriel (talk | contribs) (Info on -p flag added)
Jump to navigation Jump to search

We need the SSH and SCP commands to access the different clusters of the group. As soon as your user ID is working, Lothar can give you access to the two servers Asterope and Merope.

SSH

Inside the university

To connect to Asterope or Merope simply use the command

ssh cbi586j@asterope.agk.uni-due.de

From outside of the university

To access the university network from outside, we need to establish a VPN connection using Forcepoint. The command needed to connect is:

sudo forcepoint-client vpn.uni-due.de --resolver /usr/bin/resolvectl

Since the university does not allow direct forwarding to the group servers we need to take a detour over the staff server. This is done by the following command:

ssh -4 <username>@staff.uni-due.de

followed by

ssh -p 54321 localhost

to connect to Asterope.

The -4 specifies to use IPv4 for the connection and the -p tells ssh to use a specific port for the connection.

To get a direct pipeline you can use

ssh -p 54321 -J <username>@staff.uni-due.de <username>@localhost

SCP

SCP from inside the university network is very straightforward. The needed command is

scp -pr <username>@asterope.agk.uni-due.de:asterope-home/some/folder/somewhere/somedata.data

To transfer data from Asterope to your local machine while using the VPN, I use a two-step system where I first transfer the data into a clipboard folder on the staff server and afterwards onto my local machine. The needed commands for this version are:

scp -pr -P 54321 <username>@localhost:/homes/<username>/asterope-home/some/folder/somewhere/somedata.data clipboard/

scp -pr -4 <username>@staff.uni-due.de:clipboard/somedata.data /home/some/path/to/somewhere/

The -r is needed to copy folders and not just single files, the -P to specify a port to which to connect to. Note that for scp, in contrast to ssh, this p is uppercase. The direct forwarding from above works here as well, just replace the -p flag by -P.

It is good practice to use the (lowercase) -p flag (note how flags can be written together: -pr4 or -p -r -4 would also work) to preserve the timestamp on the file(s); otherwise, the timestamp is set to the time of copy, which is "not true" and possibly confusing (the file was not modified, just transfered).

A more powerful command that is resilient to network interruptions, has optimisations that are important especially for large files, etc. is rsync.