ロリポップのSSH接続を自分で作成した鍵で接続する

ロリポップのSSH接続を自分で作成した鍵で接続する

はじめに

レンタルサーバでロリポップを使用しているのですが、デフォルトの設定だと SSH 接続の際に毎回パスワードを入力しないと駄目なので結構面倒に感じていました。

今回、自分で SSH の公開鍵と秘密鍵を作成してパスワードフレーズ無しで接続できるように設定したのでその方法を書いていきます。

作業環境

  • Windows11
  • WSL2

公開鍵と秘密鍵を作成する

ここではロリポップの管理画面で SSH 接続を有効化していることを前提としています。

設定を完了していると、管理画面から SSH 接続の項目に移動すると以下のような画面が表示されると思います。

SSH

該当のサーバへ SSH 接続します。

ssh [アカウント名]@[ホスト名] -p[ポート番号]

# ログイン時にパスワードの入力を求められるので入力する

ログインしたディレクトリでls -laコマンドを実行すると.ssh/ディレクトリが存在していることを確認します。

そのディレクトリに移動して SSH Kye を生成します。

$ cd .ssh/

# SSH Kye を ed25519 で作成する
$ ssh-keygen -t ed25519 -C "your_email@example.com"
Generating public/private ed25519 key pair.
Enter file in which to save the key (キーの保存先): # パスワードは空でEnter
Enter passphrase (empty for no passphrase):
Enter same passphrase again:

# 生成された鍵を確認
$ la -la
id_ed25519 # 秘密鍵
id_ed25519.pub # 公開鍵

作成された公開鍵の名前を変更し、ユーザ権限を 600 にします。

$ mv id_ed25519.pub authorized_keys

$ chmod 600 authorized_keys

# 権限が rw- のみになっていることを確認
$ ls -la
-rw------- 1 LolipopUser 419  520 00:57 id_ed25519

秘密鍵をローカルに移動する

SCP コマンドを使用して、サーバの秘密鍵をローカルに移動します。

# scp ユーザ名@リモートのホスト名:コピーしたいリモートのファイル ローカルのコピー先
# ローカル側で実行
$ scp -P ポート番号 [アカウント名]@[ホスト名]:/[ディレクトリのパス]/.ssh/id_ed25519 /home/user01
# SSH Keyのパスワードを入力する

# 秘密鍵をローカルの.sshフォルダに移動する
$ mv id_ed25519 .ssh/

ダウンロードしてきた SSH Key でサーバへ接続する

ローカル側より以下のコマンドを実行してサーバへ接続します。

$ ssh -v -i ~/.ssh/id_ed25519 [アカウント名]@[ホスト名] -pポート番号

# サーバ側の秘密鍵は削除しておく
$ rm .ssh/id_ed25519

ssh config ファイルを作成する

毎回、鍵の名前やホスト名など指定するのは面倒なので ssh config ファイルを作成します。

作業はローカル側で実施します。

$ cd ~/.ssh/

$ vim config

Host 任意の接続名(hoge)
  HostName ホスト名
  User ユーザー名
  Port ポート番号
  IdentityFile 鍵へのPATH(例えば~/.ssh/hoge.key)

今回は任意の接続先をlolipopとしました。接続できるか確認します。

$ ssh lolipop

# 接続成功
[xxxxxxxx@spd103 ~]$

これだけの記述で接続できるようになりました。

元のパスワード方式で接続したい場合は、サーバ側で作成した公開鍵を削除するとデフォルトの接続に戻ります。

$ rm .ssh/authorized_keys