このドキュメントでは、root ユーザーとして Linux 仮想マシン(VM)インスタンスに接続する方法について説明します。これにより、VM でスーパーユーザー権限が有効になります。デフォルトでは、Compute Engine VM は公開イメージからビルドされ、一般的なオペレーティング システムではパスワードを使用した SSH 経由の root ログインが許可されません。
root ユーザーとして VM に接続する代わりに、root ログインを有効にするのではなく、sudo
を使用してコマンドを実行することをおすすめしています。
サポートされているオペレーティング システム
これらの接続方法は、Compute Engine で利用可能なすべての公開 Linux イメージでサポートされています。Fedora CoreOS イメージの場合、これらの方法を使用する前に、SSH アクセスを設定する必要があります。
root ログインを有効にする
デフォルトでは、Compute Engine VM は、/etc/ssh/sshd_config
SSH 構成ファイルで PermitRootLogin
パラメータを prohibit-password
または no
に設定します。VM の手順に沿って、root ログインを有効にします。
OS Login VM
次の手順で root ログインを有効にします。
SSH 認証鍵を作成します。後で使用するために公開 SSH 認証鍵をコピーします。
通常どおり VM に接続します。
次のコマンドを実行して、
/etc/ssh/sshd_config
ファイルのPermitRootLogin no
をPermitRootLogin prohibit-password
に変更します。sudo sed -i 's/PermitRootLogin no/PermitRootLogin prohibit-password/g' /etc/ssh/sshd_config
次のコマンドを使用して
/root/.ssh
ディレクトリを作成します。sudo mkdir /root/.ssh
次のコマンドを実行して、
.ssh
ディレクトリの権限を設定します。sudo chmod 700 /root/.ssh
次のコマンドを実行して
authorized_keys
ファイルを作成します。sudo touch /root/.ssh/authorized_keys
次のコマンドを実行して、
authorized_keys
ファイルの権限を設定します。sudo chmod 600 /root/.ssh/authorized_keys
公開 SSH 認証鍵を
/root/.ssh/authorized_keys
ファイルに貼り付けます。VM を再起動するか、VM のオペレーティング システムの再起動コマンドを実行して、
sshd
デーモンを再起動します。VM が再起動するのを待ってから、root ユーザーとして接続します。
非 OS Login VM
次の手順で root ログインを有効にします。
通常どおり VM に接続します。
次のコマンドを実行して、
/etc/ssh/sshd_config
ファイルのPermitRootLogin no
をPermitRootLogin prohibit-password
に変更します。sudo sed -i 's/PermitRootLogin no/PermitRootLogin prohibit-password/g' /etc/ssh/sshd_config
VM を再起動するか、VM のオペレーティング システムの再起動コマンドを実行して、
sshd
デーモンを再起動します。VM が再起動するのを待ってから、root ユーザーとして接続します。
root ユーザーとして接続する
root ログインを有効にしたら、root ユーザーとして VM に接続します。 OS Login が有効になっている VM に接続する場合は、gcloud CLI ではなく、サードパーティのツールを使用する必要があります。
gcloud
注: 接続先の VM で OS Login が有効になっている場合は、サードパーティ製ツールを使用して root ユーザーとして接続する必要があります。
VM 名の前に root@
を指定して gcloud compute ssh
コマンドを使用し、root ユーザーとして VM に接続します。
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
次のコマンドを実行して VM に接続します。
gcloud compute ssh \ --project=PROJECT_ID \ --zone=ZONE \ root@VM_NAME
次のように置き換えます。
PROJECT_ID
: VM が含まれているプロジェクトの IDZONE
: VM が存在するゾーンの名前VM_NAME
: VM の名前
サードパーティ製ツール
お使いの VM の手順に沿って、root ユーザーとして VM に接続します。
OS Login VM
サードパーティ ツールを使用して接続し、次の値を指定します。
- 秘密鍵:
authorized_keys
ファイルに追加した公開鍵に対応する秘密鍵 - ユーザー名: ユーザー名は
root
にする必要があります
- 秘密鍵:
非 OS Login VM
root ユーザーの SSH 認証鍵を作成します。鍵のユーザー名は
root
にする必要があります。サードパーティ ツールを使用して接続し、次の値を指定します。
秘密鍵: root ユーザーの秘密鍵
ユーザー名: ユーザー名は
root
にする必要があります
トラブルシューティング
失敗した SSH 接続を診断し、解決するための方法については、SSH のトラブルシューティングをご覧ください。
次のステップ
- VM へのアクセスを管理する方法を学習する。
- VM にファイルを転送する方法を学習する。
- Compute Engine での Linux VM への SSH 接続の仕組みを学習する。