レンタルサーバーに公開鍵認証でSSH接続してみる
APIやフレームワークを使用したプログラムを使用する場合、どうしてもSSH接続によるサーバー操作が必要になります。SSH接続が出来るとサーバーをより活用できるようになりますよ。
パスワード接続は管理の問題もあるので、公開鍵接続方式を紹介します。
環境
今回テストした環境:
レンタルサーバー | さくらインターネット |
---|---|
プラン | スタンダード |
OS | FreeBSD 11.2 |
ユーザー名 | myuser |
HOST(初期ドメイン) | myuser.sakura.ne.jp |
*さくらのレンタルサーバーではSSH接続はスタンダードプラン以上の機能となりますので、利用される場合はスタンダードプラン以上にアップグレードが必要です。
*さくらレンタルサーバーのSSH接続については公式ドキュメントをご確認ください。
ローカル環境で公開鍵、秘密鍵を生成
ローカル側でターミナルを立ち上げ、ssh接続に必要なディレクトリを作成。
すでにある場合はスキップしてください。
mkdir ~/.ssh chmod 700 ~/.ssh cd ~/.ssh
次に鍵生成のコマンドを入力する。
管理人は複数のサーバーを利用しているので鍵に名前をつけている。
単一のサーバーしか利用しない場合は、-f 以下のコマンドは不要。
パスフレーズが求められますが、設定を省きました。
$ ssh-keygen -t rsa -f SAKURA_STANDARD Generating public/private rsa key pair. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in SAKURA_STANDARD. Your public key has been saved in SAKURA_STANDARD.pub. The key fingerprint is: SHA256:************************************** The key's randomart image is: +---[RSA 2048]----+ | | | | | | | | | | | | +----[SHA256]-----+
実行すると以下の2つのファイルが生成されているはずです。
- SAKURA_STANDARD(秘密鍵)
- SAKURA_STANDARD.pub(公開鍵)
秘密鍵はローカル側の.sshディレクトリで使います。
.sshディレクトリで作業している場合はそのままでOKです。
公開鍵はサーバー側の.sshディレクトリに保存します。
SCPコマンドで鍵をサーバーに転送
SCPコマンドはSSH接続を利用してファイルを転送する仕組みです。
SCPコマンドは次の書式で利用します。
SCP 転送したいファイル サーバーユーザー名@ホスト:サーバー側のディレクトリ
$ scp SAKURA_STANDARD.pub myuser@myuser.sakura.ne.jp:./
パスワードが求められますので入力すると転送が始まります。
サーバー側の設定
パスワードでSSHログインし、サーバー側の設定を済ませます。
.sshディレクトリの確認
ls -laコマンドで.sshディレクトリと転送した公開鍵を確認します。
.sshディレクトリは管理人の環境ではすでに作成されていました。
もしもなければ
mkdir ~/.ssh chmod 700 ~/.ssh
で作成します。
authorized_keysに書き込む
公開鍵を .ssh/authorized_keysに書き込みます。
authorized_keysはパーミッション設定を600にしておく必要があります。
cat SAKURA_STANDARD.pub > .ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys
これでサーバー側の設定は完了です。
ログアウトしてローカル側に戻ります。
ローカルのconfigファイルに設定を書き込む
ローカル側に戻り.ssh/configに設定を書き込みます。
テキストエディタかviコマンドで以下のように編集します。
HOST sakuraStd HostName myuser.sakura.ne.jp User myuser IdentityFIle ~/.ssh/SAKURA_STANDARD
公開鍵認証でSSH接続
ターミナルを立ち上げ、
ssh sakuraStd
と入力するとサーバーに接続されます。
まとめ
さくらのレンタルサーバーに公開鍵認証でSSH接続する手順を紹介しました。
手順としては何ステップか必要ですが、設定すると後々便利ですのでぜひ挑戦してみてください。