sshで一発rootログイン @GCE for ISUCON5 4ステップ!

More than 3 years have passed since last update.

今年のIsucon5では、GCPを使用できるようになったらしく

我らGCPUGでは、可能な限りサポートするようになりました。

GCPUGよろしく> http://gcpug.jp/

早速GCEでの質問が来てました。


GCEのインスタンスにsshでルートログインしたーーい!!

GCEおよびGCPは、デフォルトでApps(gmail)アカウントと強烈に紐付いており、GCPへのアクセス権限のあるユーザーは自動的に各VMにログインできたりする素晴らしい機能なのであります。なのでrootユーザーでログインしたいとなると、そんなユーザAppsに居ないぞということになります。本来は超便利なgcloudコマンドでですが、謎ラッピングされているため、rootでログインとなると普通にはしにくいのではないかという予想。

起動前にユーザー作って、sshコマンドで入れば解決です。


必要なもの


大会提供の練習用のイメージ

>ここのサイトに超詳しく載ってるのでコピーする。

http://isucon.net/archives/45253058.html#5_1


ローカルのrootユーザーの鍵(下記Step1で作成


手順概要

Step1) ローカルでrootユーザーの鍵作成

Step2) GCEのVM作成時に上記鍵を登録

Step3) VM起動後にPermitRootLogin yes 変更&&再起動

Step4) ローカルからsshコマンドで鍵指定してログイン


詳細手順


Step1) ローカルで鍵作る

スクリーンショット 2015-08-31 18.05.16.png

上記環境で作成しました。

ルートになって

$sudo su -

.sshフォルダー作って入る

$ mkdir .ssh

$ cd .ssh/

鍵作る。(例はノーパスだけど、パスフレーズつけろよ絶対にだ)

ssh-keygen -d -f nopass-dsa -N ''

鍵出来たのでpubをコピーする

cat nopass-dsa.pub


Step2) VM作成時に大会提供の手順と違うことを一つする

vm_init_setting.png

VMの作成時に詳細設定>アクセスとセキュリティー の中で

SSHキーを登録できるので、Step1でコピーした公開鍵をペチョする。

おもむろに起動する。


Step3) sshd_configの設定を変えて反映する。

まだルートログイン出来ないので、GCP consoleのWebUI等で

当該VMにログインし、sshd_config を変更する。

rootでコンフィグ開く

sudo vim /etc/ssh/sshd_config

下記パラメータを変更する

変更前 PermitRootLogin no

変更後 PermitRootLogin yes

sshdを再起動して反映する

sudo service sshd restart


Step4) ローカルからrootでsshする

Step1の秘密鍵を指定して、sshコマンドを用いてログインする

デフォルトは固定IPついてないので接続先は

エフェメラルな外部IPにつなぎに行く

Cursor_と_Compute_Engine_-_test-chaos.png

sshコマンド

$ ssh -i /path/to/Step1の秘密鍵 -o UserKnownHostsFile=/dev/null -o CheckHostIP=no -o StrictHostKeyChecking=no root@VMの外部IP


結果

[root@test-a2c-ic-001 ~]# ifconfig

eth0 Link encap:Ethernet HWaddr 42:01:0A:F0:1B:48
inet addr:10.240.27.72 Bcast:10.240.27.72 Mask:255.255.255.255
inet6 addr: fe80::4001:aff:fef0:1b48/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1460 Metric:1
RX packets:7668 errors:0 dropped:0 overruns:0 frame:0
TX packets:7419 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:972508 (949.7 KiB) TX bytes:1409613 (1.3 MiB)

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:27 errors:0 dropped:0 overruns:0 frame:0
TX packets:27 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:5098 (4.9 KiB) TX bytes:5098 (4.9 KiB)

[root@test-a2c-ic-001 ~]#

わーい入れたーー

rm -rf / やり放題


思ったこと


  • addUserするより楽なはず

VMに入ってユーザー作って有効化して鍵作ってどうこうするより、VM作成時に鍵渡すだけなので、思ったほどめんどくさくないはず。


  • /homeにナゾのフォルダーがある

sugyanとtagomorisというフォルダーがあるのでnfsマウントされているのかとビビったがコレはゴミなので気にしないで良し。そっと消してあげてください。(これ対応中ぽい、そのうち消えてるかも)


  • PermitRootLogin yesコワイ

以上