【lolipop】SSH鍵認証方式で接続してみる

こちらのサイトではDRUPAL10に関連する記事を掲載しています。

ロリポップはレンタルサーバーですがSSH接続をサポートしています。ただパスワード認証方式なのでscpをつかってバックアップデータをロリポップサーバーに転送するなどの自動化ができませんでした。そこでこちらの記事を参考にして鍵認証をしてみました。

Connect lolipop Server With SSH Key
この記事は、ロリポップ!にてSSHを有効にしたあとで、実際にサーバへSSH鍵認証方式で接続するまでに必要な手順を説明しています。 ロリポップ!での特殊な操作というよりは、リモートマシンにSSH鍵認証方式で接続するために必要な一般的な内容を扱っています。

SSH パスワード方式での接続を確認

まずは、 SSH パスワード方式で サーバに接続できるか確認します。ログイン時に指定するアカウントとSSHパスワードなどは ロリポップ管理画面 から確認できます。

lolipop_ssh_settings.png
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設定ファイルにて、UserHostName を設定しておくと、コマンドラインから指定する内容がさらに減らせて便利かもしれません。(ご利用は計画的に)

Host lolipop
  IdentityFile ~/.ssh/id_lolipop
  HostName ssh.lolipop.jp
  Port 2222
  User lolipop.jp-xxxxxxxxxx
ssh lolipop

参考

このサイトに関するご意見・ご質問はこちらまで

この記事またはDrupalに関するご質問がございましたら、お気軽にお問い合わせください。

タイトルとURLをコピーしました