ロリポップ サーバにSSH鍵認証方式で接続する方法
tips lolipop · ssh
諸事情あり、ロリポップ!にてSSHを有効にしたが、公開鍵方式での認証を有効にしたい場合は手動で設定が必要だった。いつかまたやることになった時のための、備忘録として手順を残す。ちなみに、ロリポップ!での特殊な操作というわけでなく、リモートマシンにSSH鍵認証方式で接続するために必要な一般的な内容になっている。
SSH パスワード方式での接続を確認
まずは、 SSH パスワード方式で サーバに接続できるか確認します。ログイン時に指定するアカウントとSSHパスワードなどは ロリポップ管理画面 から確認できます。
ssh lolipop.jp-xxxxxxxxxx@ssh.lolipop.jp -p 2222
# パスワードの入力を求められる
(接続の確認だけなので)そのまま切断:
[lolipop.jp-xxxxxxxxxx@yyyyyy ~]$ exit
SSH キーペア(公開鍵・秘密鍵)の生成
ssh-keygen
コマンドで、SSH 秘密鍵と公開鍵のペアを生成します:
ssh-keygen -t rsa -f ~/.ssh/id_lolipop
なお、-f
での指定は省略すれば ~/.ssh/id_rsa
が採用されますが、既存の鍵を上書きされても嫌なので、ちゃんと指定してあげましょう。(省略してもインタラクティブに入力を求められるの & 上書き前に再度確認される ので実際はそれほど心配はいらないが)
サーバへSSH公開鍵を設定する
ssh-copy-id
で生成した公開鍵をサーバへ適用する:
ssh-copy-id -p 2222 -i ~/.ssh/id_lolipop.pub lolipop.jp-xxxxxxxxxx@ssh.lolipop.jp
鍵を明示してSSH接続してみる
サーバへの公開鍵の設定が完了したので、晴れてSSH鍵認証方式で接続することができます。
ssh lolipop.jp-xxxxxxxxxx@ssh.lolipop.jp -p 2222 -i ~/.ssh/id_lolipop
ローカルのSSH設定ファイルにロリポップを追加
ロリポップのサーバへ接続する際に、毎回ホストやポートなどを指定するのは面倒なので、ローカルの設定ファイルにロリポップ用の設定を追加しておくのが良いでしょう。
ユーザごとのSSH設定ファイルは $HOME/.ssh/config
にあるので、そちらを編集:
cat <<EOF >> ~/.ssh/config
Host *.lolipop.jp
IdentityFile ~/.ssh/id_lolipop
Port 2222
EOF
この設定によって、ssh
コマンドで接続先のホスト名に ssh.lolipop.jp
を指定した際に、当該秘密鍵とポート番号が使用されるようになります。
ssh lolipop.jp-dp00284017@ssh.lolipop.jp
なお、SSH設定ファイルにて、User
や HostName
を設定しておくと、コマンドラインから指定する内容がさらに減らせて便利かもしれません。(ご利用は計画的に)
Host lolipop
IdentityFile ~/.ssh/id_lolipop
HostName ssh.lolipop.jp
Port 2222
User lolipop.jp-xxxxxxxxxx
ssh lolipop
参考
- https://serverpilot.io/docs/how-to-use-ssh-public-key-authentication/
- https://nxmnpg.lemoda.net/ja/5/ssh_config
- https://code-log.hatenablog.com/entry/2018/11/03/120727
おわり
comments powered by Disqus