User Tools

Site Tools


other:ssh

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
other:ssh [2020/07/10 07:45]
jypeter [Useful aliases] Improved
other:ssh [2020/08/05 06:50]
jypeter [Using an ssh agent] Moved the agent section
Line 27: Line 27:
  
 <WRAP center round tip 60%> <WRAP center round tip 60%>
-Note: the following will work in a **Linux** terminal, but can also work in a //​terminal//​ on a **Mac** or on a **Windows 10** computer (''​ssh''​ is directly available in ''​Windows Powershell'',​ ''​Windows Terminal''​ or the old ''​cmd'',​ but it is not the best way to use ''​ssh''​ on Windows)+Note: the following will work in a **Linux** terminal, but can also work in a //​terminal//​ on a **Mac** or on a **Windows 10** computer (''​ssh''​ is directly available in ''​Windows Powershell'',​ ''​Windows Terminal''​ or the old ''​cmd'',​ but it is not the most user-friendly ​way to use ''​ssh''​ on Windows) 
 + 
 +If you have a Windows computer, it is much easier to use [[other:​putty_conf|PuTTY]] for creating an ''​ssh''​ connection 
 </​WRAP>​ </​WRAP>​
  
Line 40: Line 43:
  
   * Most common options:   * Most common options:
-    * ''​-X'':​ Enable X11 forwarding. This option will allow you to start graphical programs on the remote server+    * ''​-X'':​ Enable ​//X11 forwarding//. This option will allow you to start graphical programs on the remote server
       * If ''​-X''​ does not work, use ''​-Y''​ instead (Enable //trusted// X11 forwarding)       * If ''​-X''​ does not work, use ''​-Y''​ instead (Enable //trusted// X11 forwarding)
       * Using the ''​-X''/''​-Y''​ option will automatically define the ''​DISPLAY''​ environment variable that is required by graphical programs on the remote server. Otherwise, ''​DISPLAY''​ will not be defined\\ <​code>​my_login@lsce5203:​~$ echo $DISPLAY       * Using the ''​-X''/''​-Y''​ option will automatically define the ''​DISPLAY''​ environment variable that is required by graphical programs on the remote server. Otherwise, ''​DISPLAY''​ will not be defined\\ <​code>​my_login@lsce5203:​~$ echo $DISPLAY
Line 57: Line 60:
         * Windows: [[other:​win10wsl#​installing_an_x_server|install,​ configure and launch VcXsrv]]         * Windows: [[other:​win10wsl#​installing_an_x_server|install,​ configure and launch VcXsrv]]
         * Mac: FIXME         * Mac: FIXME
-    * ''​-A'':​ enable agent forwarding. This is useful when you use //ssh keys//, and an //ssh agent//+    * ''​-A'':​ enable ​//agent forwarding//. This is useful when you use //ssh keys//, and an //ssh agent//
     * ''​-t command'':​ this option allows you to execute a command on the remote server (without displaying the output of the initial ''​ssh''​). We use this mostly to //chain ssh connections//,​ when we want to automatically go through a specific //gateway// server to access another server\\ e.g. ''​ssh -A -X my_login@ssh1.lsce.ipsl.fr -t ssh -A -X obelix''​     * ''​-t command'':​ this option allows you to execute a command on the remote server (without displaying the output of the initial ''​ssh''​). We use this mostly to //chain ssh connections//,​ when we want to automatically go through a specific //gateway// server to access another server\\ e.g. ''​ssh -A -X my_login@ssh1.lsce.ipsl.fr -t ssh -A -X obelix''​
     * ''​-v'':​ verbose mode. Use this option only when you can't connect, or things don't seem to work correctly. Analyzing the verbose output when you start ''​ssh''​ should allow you, or the [[other:​newppl:​starting#​getting_help_from_the_lsce_system_administrators|system administrators]],​ to find out what is wrong     * ''​-v'':​ verbose mode. Use this option only when you can't connect, or things don't seem to work correctly. Analyzing the verbose output when you start ''​ssh''​ should allow you, or the [[other:​newppl:​starting#​getting_help_from_the_lsce_system_administrators|system administrators]],​ to find out what is wrong
Line 88: Line 91:
 ==== A recommended ssh client for Windows ==== ==== A recommended ssh client for Windows ====
  
-[[other:win10apps#​putty_pageant|Putty]] is a nice and convenient //ssh client// for Windows+[[other:putty_conf|PuTTY]] is a convenient ​and user-friendly ​//ssh client// for Windows
  
-===== Just transferring ​files =====+===== Copying ​files between servers/​computers ​=====
  
-Sometimes you just need to copy files from one server to the other. The files can be securely copied //over ssh// with the ''​scp''​ command+Sometimes you just need to copy files from one remote ​server ​(or your desktop) ​to the other. The files can be securely copied //over ssh// with the ''​scp''​ command
  
 Note: if you work with big data files, you should keep the files were they are instead of duplicating them, and move the data processing (your scripts, etc...) to the server where the files are located (e.g. the ciclad server) Note: if you work with big data files, you should keep the files were they are instead of duplicating them, and move the data processing (your scripts, etc...) to the server where the files are located (e.g. the ciclad server)
 +
 +==== Copying files with scp ====
 +
 +<WRAP center round tip 60%>
 +Note: the following will work in a **Linux** terminal, but can also work in a //​terminal//​ on a **Mac** or on a **Windows 10** computer (''​scp''​ is directly available in ''​Windows Powershell'',​ ''​Windows Terminal''​ or the old ''​cmd'',​ but it is not the most user-friendly way to use ''​ssh''​ on Windows)
 +
 +If you have a Windows computer, it is much easier to use [[other:​win10apps#​winscp|WinSCP]] for copying files
 +</​WRAP>​
 +
 +  * **''​scp [options] local_path_or_file [my_login@]remote_server:​remote_path''​**\\ or **''​scp [options] ​ [my_login@]remote_server:​remote_path_or_file local_path''​**
 +    * If your login is the same on the local and remote computer, you can omit the optional ''​my_login@''​ part
 +
 +  * Most common options:
 +    * ''​-p'':​ **preserves modification times**, access times, and modes from the original file. This option is very useful if you want the copied file(s) to have the same date/time as the original file(s). Otherwise, the time will be the time when you copy the file
 +    * ''​-r'':​ **recursively** copy entire directories. **You have to use this option if the source location is a directory**. ''​scp -r''​ will copy the complete content of the directory (including sub-directories)
 +
 +==== A recommended graphical scp client for Windows ====
 +
 +[[other:​win10apps#​winscp|WinSCP]] is a convenient and user-friendly //scp client// for Windows
 +
 +==== Synchronizing directories ====
 +
 +In some cases, you may want to synchronize the content of directories:​
 +  * because you are creating a backup
 +  * because you have lots of files, possibly (very) big, and you don't want to start copying everything again if the copy fails due to temporary network problems
 +  * ...
 +
 +In that case, you should use the ''​rsync''​ command, that will only copy files that are not already in the destination (and that have not changed since the previous copy).
 +
 +''​rsync''​ has lots of complex options and rules, and **should be used carefully** if you do not want to lose files. This page does not cover this topic. Use ''​man rsync''​ or ask somebody
  
 ===== Using ssh keys ===== ===== Using ssh keys =====
  
  
-===== Using an ssh agent ===== 
  
 ===== More... ===== ===== More... =====
other/ssh.txt · Last modified: 2023/05/03 08:32 by jypeter