Connecting to a Remote Service Using SSH Tunneling and cURL

AI Maverick
2 min readNov 20, 2023

Introduction

In this tutorial, we’ll explore the process of connecting to a remote service securely using SSH tunneling and the curl command. This approach allows you to interact with a service running on a remote server as if it were running locally on your machine.

Prerequisites:

  • Access to a remote server with SSH enabled.
  • curl installed on your local machine.

Step 1: Connect to the Remote Server

Assuming you have an SSH key (llm_key.pem in this example) and the necessary server details, use the following command to establish an SSH connection:

ssh -L 8080:localhost:8080 -i C:\Users\user\.ssh\key.pem ubuntu@0.0.0.0

Replace C:\Users\user\.ssh\key.pem with the path to your private key and 0.0.0.0 with the actual public IP address of your remote server.

Step 2: Leave the SSH Connection Open

Keep the command prompt window with the SSH tunnel open. This tunnel forwards traffic from your local machine’s port 8080 to the remote server’s port 8080.

Step 3: Send a cURL Request

Open a new command prompt window and use curl to send a POST request to the remote service. For example:bashCopy code

curl --data '{"?"}' http://localhost:8080/

Step 4: Verify the Response

Check the response from the remote service. If configured correctly, you should receive a response as if the service were running locally.

Conclusion:

In this tutorial, we’ve covered the process of connecting to a remote service securely using SSH tunneling and the curl command. This approach is useful when you need to interact with a service on a remote server as if it were running on your local machine. Remember to close the SSH tunnel when you're done to ensure security.

--

--