How SSH into Remote Computers Using Windows, Linux or macOS

SSH consoles on Linux and Windows
(Image credit: Future / Pexels)

If you ever need to securely connect to a remote machine and reach a command-line interface, SSH is the tool for the job. The Secure Shell Protocol (SSH) has been used for decades as a means to remotely interface with Unix / Linux / BSD machines over insecure connections.

SSH operates on a traditional client - server principle where a remote user (client) can connect to a server and run commands as if they were sitting at the machine. SSH is particularly useful if you have a server (perhaps on one of the best cheap web hosts) or Raspberry Pi you need to control remotely. As these systems primarily use Linux, it’s easy to do things like edit scripts, change key configuration files or even install software remotely.

In this how to, we will cover how to create basic SSH connections coming from Windows, macOS and Linux machines.

Before You Open SSH: Credentials and Access

To initiate an SSH connection coming from any operating system, you first need proper access to the remote device and you need its address, in the form of either an IP address or a valid hostname. You will need to enter the address to establish your connection and then you will be hit with a request for a username and password.

If you have a web hosting account with SSH enabled, you will likely be able to use the domain name as the address and then the same username and password you employ for reaching FTP or cPanel to log in. If those don’t work, check the instructions on the host’s site. If you are logging into a server on your local network, you will need the computer name / IP address and to make sure that the remote device has an account for you on it.

Using SSH in Windows

SSH connections can be invoked via the command line and Powershell, but some folks m prefer to use PuTTY, a free GUI app that makes connecting easy. We'll cover all three ways.

SSH via the Command Prompt

1. Click on the Windows Start menu and search for Command Prompt. Click on the Command Prompt icon to start a new prompt.

Windows 10 Command Prompt

(Image credit: Future)

2. In the prompt enter the username and IP address of the target device and press Enter. In this case it is a Raspberry Pi 5 connected to our network. Remember to separate the username and IP address with the @ symbol. If you know the hostname for the target device, use that instead of the IP address.

ssh username@IPADDRESS or HOSTNAME

Windows Command Prompt SSH connection

(Image credit: Future)

3. Enter the password and press Enter. You are now in control of the remote machine. To exit, either type exit, or press CTRL + D, or close the Command Prompt window.

SSH via Windows Powershell

1. Click on the Windows Start menu and search for Powershell. Click on the Command Prompt icon to start a new prompt.

Windows PowerShell

(Image credit: Future)

2. In the PowerShell window enter the username and IP address of the target device and press Enter. In this case it is a Raspberry Pi 5 connected to our network. Remember to separate the username and IP address with the @ symbol. If you know the hostname for the target device, use that instead of the IP address.

Windows PowerShell

(Image credit: Future)

3. Enter the password and press Enter. You are now in control of the remote machine. To exit, either type exit, or press CTRL + D, or close the PowerShell window.

SSH via PuTTY

1. Download and install PuTTY.

2. Open PuTTY. PuTTY’s user interface has a Host Name / IP address section which is where we would type in the details of the machine that we wish to SSH into.

3. Enter the appropriate address into the Hostname or IP address field and click Open.

Putty

(Image credit: Tom's Hardware)

4. Answer Yes if prompted to confirm your connection. If this is the first time connecting to that system, you will be asked.

Click Yes

(Image credit: Tom's Hardware)

You will now be connected to the remote system.

5. Enter your username and password as prompted. The password is not echoed to the screen, this is normal behavior and is a security feature.

You are now in control of the remote machine, any commands will be executed using the remote machine.

command prompt on remote device

(Image credit: Tom's Hardware)

6. When finished with the SSH session, type exit and press Enter or simply close the window. It is important to close an SSH session when not in use so you don’t accidentally send commands to it or leave it open should your computer be hacked.

Using SSH in Linux

In all major versions of Linux, SSH is built into the command line and easy to access that way. Note that we used Ubuntu for this tutorial but these instructions would work with almost any Linux flavor.

1. Open the terminal if you’re not already at the command line. Hitting CTRL + ALT + T does this or you can go to the apps menu and search for “terminal” to find its app.

launch terminal

(Image credit: Tom's Hardware)

2. Use SSH to log in to the remote machine using your username, and the IP address / hostname. For example our user was “pi” and the hostname was “smartipi,” this is what we’d use:

ssh pi@smartipi.local

SSH in Linux

(Image credit: Tom's Hardware)

3. Type yes if you are given a warning that the SSH connection’s key is not known. This may happen on first connection and you may need to reconnect after entering it.

Type Yes when prompted

(Image credit: Tom's Hardware)

4. Enter your password if prompted. You won’t see the characters as you type them.

Type Yes when prompted

(Image credit: Tom's Hardware)

Enter password if prompted

(Image credit: Tom's Hardware)

5. Press CTRL + D or type “logout” to finish your session.

Using SSH in macOS

1. Launch the terminal by clicking the terminal icon in the dock.

Launch the terminal in macOS

(Image credit: Tom's Hardware)

The terminal is ready for use.

macOS terminal

(Image credit: Tom's Hardware)

2. Enter the SSH command followed by username@server. In the example below, our user was “pi” and the hostname was “raspberrypi.local”.

ssh pi@raspberrypi.local

3. Type Yes if prompted to confirm the connection for the first time.

4. Enter your password when prompted.

5. When finished with the SSH session, exit using CTRL+D or type exit and press Enter. It is important to close an SSH session when not in use so you don’t accidentally send commands to it or leave it open should your computer be hacked.

How to run a command and close an SSH connection

Sometimes we just need to run a single command on a remote machine. For example this could be a Raspberry Pi that we need to shutdown. Using the -t argument we can log in, run a command, wait for the output and then logout.

1. Open a terminal / command prompt.

2. Use SSH to log in to the remote machine, add “-t” to the end of the command, then insert the command that you wish to run and press Enter. In our example we will login to a Raspberry Pi then run the poweroff command to power down the Pi.

ssh pi@raspberrypi.local -t "sudo poweroff"

3. Enter a password as needed

SSH

(Image credit: Tom's Hardware)

The remote computer should now log you off and then perform the task.

Les Pounder

Les Pounder is an associate editor at Tom's Hardware. He is a creative technologist and for seven years has created projects to educate and inspire minds both young and old. He has worked with the Raspberry Pi Foundation to write and deliver their teacher training program "Picademy".