この記事では、ConoHa VPSにSSHで安全に接続するために必要な「公開鍵認証」の設定手順を、初心者にも分かりやすく解説します。
ConoHa VPSでは、第三者による不正アクセスを防ぐため、パスワード認証よりも安全な公開鍵認証方式でのSSH接続が推奨されています。この方式では、手元のPC(ローカルマシン)で「秘密鍵」を、接続先のVPSに「公開鍵」を配置し、この2つが正しいペアであるかを認証してログインします。
この記事を参考に、大切なサーバーを守るための第一歩を踏み出しましょう。
目次
ステップ1:SSHキーペア(公開鍵と秘密鍵)を準備する
SSH接続に必要なキーペアを準備する方法は2つあります。ご自身の状況に合わせてどちらかを選んでください。
- VPSを新規作成する場合:ConoHaの管理画面で作成するのが簡単です。
- 既存のVPSに新しいPCから接続したい場合:手元のPCで作成するのが一般的です。
方法A:ConoHaの管理画面でキーペアを自動生成する(VPS新規作成時におすすめ)
VPSの新規作成時にこの方法を使うと、公開鍵が自動でサーバーに設定されるため手間が省けます。
ConoHa VPSのコントロールパネルにログインし、「セキュリティ」→「SSH Key」と進み、「追加」ボタンを押します。
「自動作成」を選択し、キーの名称(例:
my-vps-key
)を入力して「保存」をクリックします。ダウンロードの指示が表示されたら、拡張子が
.pem
のファイルをダウンロードしてください。これが秘密鍵です。【重要】秘密鍵の厳重な保管 この秘密鍵ファイルは、サーバーにログインするための「合鍵」です。紛失するとサーバーにログインできなくなり、第三者に漏洩すると不正にアクセスされる危険があります。 安全な場所に大切に保管してください。
方法B:手元のPCでキーペアを生成する(ssh-keygen)
すでにあるVPSに新しいキーを追加したい場合や、キーペアを自分で管理したい場合は、ssh-keygen
コマンドで作成します。
Windowsなら「PowerShell」や「コマンドプロンプト」、Macなら「ターミナル」を開き、以下のコマンドを実行します。
ssh-keygen -t rsa -b 4096 -f ~/.ssh/conoha_rsa
- RSA形式、4096ビットの強力なキーを生成します
- -f オプションで、キーの保存場所とファイル名を指定します
実行すると、指定した場所に2つのファイルが生成されます。
conoha_rsa
:秘密鍵 (絶対に他人に渡さないでください)conoha_rsa.pub
:公開鍵 (これをサーバーに登録します)
ステップ2:サーバーに公開鍵を登録する
方法AでVPS新規作成時にキーペアを準備した場合、すでに自動で登録されているのでこの手順は不要です。
方法Bでキーペアを作成した場合や、既存のVPSに新しい公開鍵を追加する場合は、以下の手順でサーバーに手動で登録する必要があります。
ConoHaのコンソールからサーバーにログイン コントロールパネルから対象のVPSを選択し、「コンソール」を開いてパスワードでログインします。
公開鍵をサーバーに設置 以下のコマンドを一行ずつ実行し、
authorized_keys
というファイルに公開鍵の内容を追記します。# SSHの設定ディレクトリを作成(すでにある場合は何もしません) mkdir -p ~/.ssh # ディレクトリの権限を所有者のみ読み書き実行可能に設定 chmod 700 ~/.ssh # authorized_keysファイルに公開鍵を追記します # "ssh-rsa AAAA..." の部分は、手元のPCで作成した .pub ファイルの中身に置き換えてください echo "ssh-rsa AAAA..." >> ~/.ssh/authorized_keys # ファイルの権限を所有者のみ読み書き可能に設定 chmod 600 ~/.ssh/authorized_keys
ステップ3:SSHクライアントからVPSに接続する
接続する前に、手元にある秘密鍵ファイルの権限を、所有者しか読み取れないように設定する必要があります。この設定がされていないと、セキュリティ上の理由から接続が拒否されます。
秘密鍵のパーミッション(権限)設定
Windowsの場合
PowerShellを開き、icacls
コマンドで権限を設定します。
# ダウンロードした秘密鍵のパスを各自の環境に合わせて変更してください
$keyPath = "C:\Users\YourName\.ssh\key.pem"
# 1. アクセス権の継承を無効にする
icacls $keyPath /inheritance:r
# 2. 現在のユーザーにのみ読み取り権限を与える
icacls $keyPath /grant:r "$($env:USERNAME):(R)"
# 3. (念のため) 他の全ユーザーの権限を削除する
icacls $keyPath /remove "Authenticated Users"
icacls $keyPath /remove "SYSTEM"
icacls $keyPath /remove "BUILTIN\Administrators"
icacls $keyPath /remove "BUILTIN\Users"
# 4. 設定された権限を確認
icacls $keyPath
実行結果が YOUR-PC-NAME\YourName:(R)
のように、自分のユーザー名のみ表示されれば成功です。
macOS / Linuxの場合
ターミナルで chmod
コマンドを実行するだけです。
# 秘密鍵のパスを各自の環境に合わせて変更してください
chmod 600 ~/.ssh/conoha_rsa
接続コマンドの実行
準備が整ったら、いよいよSSHで接続します。
# -i オプションで秘密鍵のパスを指定します
ssh -i <秘密鍵ファイルのパス> root@<VPSのIPアドレス>
実行例:
ssh -i C:\Users\YourName\.ssh\key.pem ubuntu@123.45.67.89
これで接続が完了です。
さらに便利に:SSH設定ファイルで接続を簡略化する
毎回長いコマンドを打つのは大変です。~/.ssh/config
ファイルを作成すると、接続情報を保存してコマンドを短縮できます。
手元のPCで
~/.ssh/config
ファイル(なければ新規作成)をテキストエディタで開きます。以下のように接続情報を記述します。
Host conoha # 接続時の呼び名(任意) HostName 123.45.67.89 # VPSのIPアドレス User ubuntu # ログインユーザー名 IdentityFile ~/.ssh/conoha_rsa # 秘密鍵のパス Port 22 # SSHポート(デフォルトは22)
保存後、以下の短いコマンドで接続できるようになります。
ssh conoha
まとめ:安全なSSH接続のための重要ポイント
- VPS新規作成時は、ConoHaの管理画面でキーペアを作成すると公開鍵が自動で設定され簡単です。
- 既存のVPSにキーを追加する場合は、手動でサーバーに公開鍵を設置する必要があります。
- 接続に使う秘密鍵ファイルは、セキュリティのためファイル権限を厳しく設定しないと接続が拒否されます(特にWindowsでは注意が必要です)。
- キーペアのファイル名は自由につけられますが、どのサーバー用のどのキーなのかが分かるように管理しましょう。
- 秘密鍵は絶対に他人に渡さず、紛失しないように厳重に保管してください。