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

この記事はブログとプログラミングで生計をたてている海外在住ウェブディベロッパーがわかりやすさにこだわって作成しました

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

ロリポップ サーバにSSH鍵認証方式で接続する方法 | Micheam's TechBlog
システム開発に関する雑記

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

参考

PHP/Javascript/WORDPRESS案件全般承ります

オーストラリアで主に日系企業や個人のお客様からのご依頼でお仕事をしております。この記事についてのご質問またはお困りのことがございましたら、お気軽にお問い合わせください。

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