ロリポップ サーバに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

参考


おわり

comments powered by Disqus