2021/12/15

Easy connection to a remote server using SSH (Linux & macOS)

data_encryption
Table of content
  1. What is SSH and why it is used
  2. How to use SSH to connect to a remote server with a private key
  3. How to use ssh-agent to store your keys and passwords for easy logins

Requirements:

  • A Linux or macOS distribution installed on your computer
  • Access to a user with root privileges

1. What is SSH and why it is used?

SSH stands for Secure Socket Shell. It’s a protocol that allows users to connect in a secure way to remote servers. Although strong passwords alone give basic protection from security threats, encrypted data communication is necessary for a safe connection to servers. In addition, SSH can be used for:

  • Executing commands remotely and setting up a server
  • Transferring any kind of file
  • Managing access to a server for different users

SSH establish a secure connection with the help of a set of asymmetric encryption keys. Two keys are generated for SSH: a public key and a private key.

  • The role of the public key is to encrypt the data. It is configured inside the remote server.
  • The private key is used to decrypt the data that has been encrypted by the public key: it is given to the users to allow them to connect to the server.

Hence the terminology, the public key can be made public whereas the private should be kept private.

2. How to use SSH to connect to a remote server with a private key

Straight to the point: if it is only for a one time connection, enter the following command into your terminal:

$ ssh -i ssh_key_path/ssh_key Username@Hostname_or_IP

Where:

  • ssh_key_path is the path of the directory containing your private key
  • ssh_key is the filename of your key
  • Username is the name of the user inside the remote server
  • Hostname_or_IP has to either be the hostname or the IP of the remote server

The ssh command should be installed by default on your system. Please note that root privileges are required to execute this command. Moreover, you might be prompted to enter the password for the key after executing this command. If the key password is unknown to you, you need to verify it with the provider of your key.

3. How to use ssh-agent to store your keys and passwords for easy logins

If you will frequently connect to the remote server by SSH, you may want to configure ssh to store your keys and passwords. This way, you won’t need to specify your private key and its password at each connection. Here is how it is done:

$ ssh-agent $BASH
$ ssh-add ssh_key_path/ssh_key

If there is a password attached to your private key, you will be prompted to input it.

If you obtain the error message “WARNING: UNPROTECTED PRIVATE KEY FILE! Permissions 0644 for ‘ssh_key_path/ssh_key’ are too open.”, you can resolve this permission with the following simple command:

$ chmod 400 ssh_key_path/ssh_key

Then execute once more the ssh-add command and you will become able to simply access the remote server with your username, host information and no password:

$ ssh Username@Hostname_or_IP

関連記事


icon-loading

AWS Elastic Beanstalk で Laravel を動かしてみた

AWS Elastic Beanstalk の使い方をご紹介しながら Laravel を動かしてみます。 公式ドキュメントを読んで「動かない...」となった方も、本記事を読めば大丈夫です。 NGINX の設定ファイルを事前に配置、ソースコードを適切にZIP化、 Amazon RDS を追加...といった手順を踏んでいきます。

icon-loading

Laravel環境構築(Mac編)

Mac端末にPHPフレームワーク「Laravel」の環境を構築します。 ローカル環境でLaravelを実行するところまで確認していきます。

icon-loading

EC2からS3にcronでバックアップ

とりあえずEC2のこのディレクトリをS3にバックアップしといてと言われたあなたへ

icon-loading

3 Essential Checks in Laravel

Get bugs in production but ran perfectly in development? How to avoid "Divide by zero", "Trying to get property of non-object", other common Laravel PHP errors.

icon-loading

Laravelでバックアップ処理を実装する

Laravel-backupパッケージを利用してソースコードやDBのバックアップを毎日実行するところまで解説していきます。

icon-loading

Laravel キャッシュクリアコマンド

他の開発メンバーが実装したコードが動かない...そんなとき、一度落ち着いて実行して欲しいLaravelのキャッシュクリアコマンドをまとめました。