SSH

SSH Notes

2024/02/28

SSH

I use SSH all the time for work and my own projects. This post is just a collection of SSH related commands that I find useful.

Basic Usage

Log into a machine as a specific user with ssh.

  ssh username@example.com

Specify a port other than the default (22) with -p.

  ssh username@example.com -p 5555
  ssh ssh://username@example.com:5555

Specify a SSH key with -i followed by the path to the key.

  ssh -i ~/.ssh/my_key  username@example.com

Copy Files

SCP

I occasionally use scp to copy files over the network (but I usually use SFTP)

scp -P 5555   -i ~/.ssh/my_id  <FILE_NAME> username@example.com:/home/username/<FILE_NAME> 

Note:

  • For scp the port option -P is upper case P. This is different from ssh which uses lower case p.
  • -i is still the same.

To copy an entire folder use the -r option

scp -r host:path/directory .
SFTP

sftp lets you interactively copy files to and from a server.

sftp -oPort=5555   -i ~/.ssh/my_id  username@example.com

The basic commands are:

  • pwd : Show the name of the remote working directory.
  • ls : list the contents of the remote directory.
  • cd <path> : Change the remote directory to`
  • put <filename> : Upload a local file to the remote machine
  • get <filename> : Download a remote file to the local machine. adding -r will recursively copy files from the server.
  • lpwd : Show the name of the local working directory.
  • lls : list the contents of the local directory.
  • lcd <path> : Change the local directory to`

Generate SSH Keys

Use ssh-keygen to create SSH keys.

ssh-keygen -t rsa

-t rsa sets the algorithm to RSA. You can set the number of bytes (more is better) with the -b option

ssh-keygen -t rsa -b 4096

You will be asked for a passphrase. I typically enter one, but you can just press return to leave it blank:

fred5617@homebox:~$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/fred5617/.ssh/id_rsa): /home/fred5617/.ssh/id_rsa_eraseme
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/fred5617/.ssh/id_rsa_eraseme
Your public key has been saved in id_rsa_eraseme.pub
The key fingerprint is:
SHA256:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX fred5617@homebox
The key's randomart image is:
+---[RSA 3072]----+
|.XXXXXXXXXX      |
|= XXX.XXX. XXX X |
|-XXX X X XXXXX   |
|  .X. XX. XX     |
|     XXXA.       |
|    , .XX      * |
|   XX . X        |
|   * >.XX .      |
|       * X XX    |
+----[SHA256]-----+
Copy SSH keys to a Server

Once you have a new key, you can upload its public key to a server with ssh-copy-id.

ssh-copy-id -i ~/.ssh/id_rsa_eraseme  fred@example.com

For this to work, you must already have SSH and password access to the server.

ssh-agent

Sometimes you want to use SSH multiple times without entering your passphrase each time. To do this, use ssh-agent.

eval $(ssh-agent)

Then add the key you want to use with ssh-add

ssh-add /path/to/id_rsa_eraseme

SSHFS

Mounting a remote filesystem with sshfs

sshfs fred5617@10.10.50.1:/home/fred5617/SEGA/sgdkrocksnet  ~/sgdkrocksnet/

About Me

Greg Gallardo

I'm a software developer and sys-admin in Iowa. I use C++, C#, Java, Swift, Python, JavaScript and TypeScript in various projects. I also maintain Windows and Linux systems on-premise and in the cloud ( Linode, AWS, and Azure )

Github

Mastodon

YouTube

About you

IP Address: 18.117.158.47

User Agent: Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)

Language:

Latest Posts

Iowa City Weather

Today

-- ˚F / 61 ˚F

Sunday

71 ˚F / 54 ˚F

Monday

64 ˚F / 46 ˚F

Tuesday

76 ˚F / 54 ˚F

Wednesday

76 ˚F / 56 ˚F

Thursday

72 ˚F / 51 ˚F

Friday

67 ˚F / 47 ˚F