今年の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) ローカルで鍵作る
ルートになって
$sudo su -
.sshフォルダー作って入る
$ mkdir .ssh
$ cd .ssh/
鍵作る。(例はノーパスだけど、パスフレーズつけろよ絶対にだ)
ssh-keygen -d -f nopass-dsa -N ''
鍵出来たのでpubをコピーする
cat nopass-dsa.pub
Step2) VM作成時に大会提供の手順と違うことを一つする
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につなぎに行く
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コワイ
以上