LoginSignup
0
2

More than 1 year has passed since last update.

GCEでインスタンス作成、ポートを変更してSSHで接続

Last updated at Posted at 2022-10-05

やりたいこと

  • 【このページ】無料枠でGCEを起動したい
  • 【このページ】SSHの22番ポートを3333番ポートに変更したい
  • こちらから】GCE(仮想マシン) 内の Python(Ubuntu) でSeleniumを使ったスクレイピング
  • こちらから】取得したファイルをGoogle Driveにアップロード
  • こちらから】スクレイピングを cron で定期的に実行する
  • こちらから】指定の時間にインスタンスをオン/オフする

全体図

cloud.jpg

GCPを始める前に必要なもの

  • 携帯電話の番号
    Googleからのショートメッセージを受け取るため

  • Googleアカウント
    二段階認証を設定してください、乗っ取られたら元も子もないので。

  • クレジットカード
    Vプリカなどのプリペイドカードは無料トライアル登録不可

二段階認証の設定と無料トライアル登録までの手順は割愛

① GCEの有効化

  1. 画面左上、Google Cloud ロゴの左にある ナビゲーション メニュー から すべてのプロダクトを表示
  2. コンピューティングの Compute Engine を選択
  3. Compute Engine APIを 有効にする

② インスタンスの作成

  1. インスタンスを作成 をクリック
  2. マシンの構成・ブートディスクを以下に変更する
    無料枠で使う場合は、赤枠を変更しないこと(投稿日時点)
    06.jpg
    07.jpg
  3. ページの一番下にある 作成

③ SSHの設定

  1. 画面右上、通知マークの左にある Cloud Shellをアクティブにする
    09.jpg
  2. ウィンドウの下部にコンソールが表示されるので、コンソール内に以下の3行を入力
    ※ ↓ パスフレーズを聞かれますが、設定せずに進めました
    ユーザー名@cloudshell:~ (プロジェクト名)$
    ssh-keygen -t rsa -f ~/.ssh/my-ssh-key -C hogehoge
    chmod 400 ~/.ssh/my-ssh-key
    cat ~/.ssh/my-ssh-key.pub
    
  3. コンソール内に出力された ssh-rsa ~~~ hogehoge をコピーする
  4. 作成時につけた インスタンス名 をクリック
  5. 編集 をクリック
  6. 表示されたページの真ん中、やや下にある
    セキュリティとアクセス > SSH 認証鍵 > +項目を追加
  7. コピーした ssh-rsa ~~~ hogehoge を貼り付ける
    12.jpg
  8. ページの下部にある 保存

④ 接続できるか確認

  1. コンソールに以下の1行を入力
    ※[外部 IP アドレス] ③ SSHの設定 の続きならページの真ん中から、サイドメニューの VM インスタンス からも確認できます
    ユーザー名@cloudshell:~ (プロジェクト名)$
    ssh -i ~/.ssh/my-ssh-key hogehoge@[外部 IP アドレス]
    
  2. 初回だけ接続時に Are you sure you want to continue connecting (yes/no/[fingerprint])? と聞かれるので yes
  3. hogehoge@vm-hoge:~$ と表示されたら接続完了
  4. このままだと、デフォルトのポート番号22のままなので、ポート番号3333へ変更します

⑤ ファイアウォールの設定

⑤-1 接続先のsshd設定を修正

  1. コンソールに以下の4行を入力
    hogehoge@vm-hoge:~$
    sudo cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config.org
    sudo sed -i -e "s/#Port 22/Port 3333/g" /etc/ssh/sshd_config
    sudo systemctl restart sshd
    exit
    

⑤-2 SSHの22番ポートを閉じるルールの作成

  1. 画面左上、Google Cloud ロゴの左にある ナビゲーション メニュー から すべてのプロダクトを表示
  2. ネットワーキングの VPC ネットワーク を選択
  3. ファイアウォール から ファイアウォール ルールを作成
  4. 変更した箇所が以下のテーブル
    項目
    名前 disable-ssh22
    説明 22番ポートを閉じる
    一致したときのアクション 拒否
    ターゲットタグ disable-ssh22
    送信元 IPv4 範囲 0.0.0.0/0
    ☑ TCP 22
  5. ページの一番下にある 作成

⑤-3 SSHの3333番ポートを開くルールの作成

  1. もう一度、ファイアウォール ルールを作成
  2. 変更した箇所が以下のテーブル
    項目
    名前 enable-ssh3333
    説明 3333番ポートを開く
    一致したときのアクション 許可
    ターゲットタグ enable-ssh3333
    送信元 IPv4 範囲 0.0.0.0/0
    ☑ TCP 3333
  3. ページの一番下にある 作成

⑤-4 設定をインスタンスに反映

  1. 画面左上、Google Cloud ロゴの左にある ナビゲーション メニュー から すべてのプロダクトを表示
  2. コンピューティングの Compute Engine を選択
  3. 作成時につけた インスタンス名 をクリック
  4. 編集 をクリック
  5. 表示されたページの真ん中、やや上にある
    ネットワーク インターフェース > ネットワーク タグ
  6. ファイアウォール ルールを作成したときに設定した ターゲットタグ を入力
    19.jpg
  7. ページの下部にある 保存

⑥ もう一度、接続できるか確認

  1. コンソールに以下の1行を入力
    今回は -p 3333 でポート番号を指定
    ユーザー名@cloudshell:~ (プロジェクト名)$
    ssh -i ~/.ssh/my-ssh-key -p 3333 hogehoge@[外部 IP アドレス]
    
  2. 接続できたら終わりです、お疲れ様でした

おまけ: 楽してSSH

※外部IPの設定がデフォルトの場合、IPが切り替わるごとにconfigの再設定が必要
 お金がかかるが、外部IPをエフェメラル(簡単に言うと動的IP)を静的IPに変更すれば不要になる

  1. exit を入力して接続先から切断しておく
  2. コンソールに以下の1行を入力、config を作成・編集する
    ユーザー名@cloudshell:~ (プロジェクト名)$
    vim ~/.ssh/config
    
  3. config ファイルの中身は以下のようにする
    Host hogehoge
        HostName [外部 IP アドレス]
        User hogehoge
        Port 3333
        IdentityFile ~/.ssh/my-ssh-key
    
  4. Esc で編集モードを抜けて Shift + Z を2回押して保存
  5. ウィンドウ下部のコンソールに以下の1行を入力
    ユーザー名@cloudshell:~ (プロジェクト名)$
    ssh hogehoge
    
  6. ⑥ もう一度、接続できるか確認 より楽してSSH接続完了

メモ

  • Ubuntu 22.10以降、sshd関連に変更があるので上記コマンドで設定できない
  • ③ SSHの設定 から先の一連の流れはWindows PowerShell、MacOS ターミナルからも出来る
    Windows PowerShellで行う場合 ~(チルダ)$HOMEに、vimはPowerShellに入ってないのでconfigファイルを用意する。
  • GCPの無料トライアルを登録後、やってみたいこと(?)は何ですか?みたいなアンケートっぽい画面が表示されるがアンケートではなく、よく使うものをピン留めするだけの有難迷惑なのでスルー推奨
  • 楽にコピペできるように書き残したかったので、各コードの頭に # (rootユーザー) と $ (一般ユーザー) は使用しない
  • my-ssh-keyhogehoge は変更可能。admin, root, user のような安直なのは避けるべき
  • ファイアウォールの設定 ⑤-2⑤-3名前ターゲットタグも変更可能。
  • 無料枠 を確認したい
  • Cloud Shell を初期化したい 公式ガイド推奨バルス
  • "Permission denied (publickey)" の対応
  • ssh コマンドをスッキリさせる
  • 鍵長とハッシュ値と公開鍵暗号の方式の確認
    ssh-keygen -l -f ~/.ssh/my-ssh-key.pub
    
  • .ssh パーミッションの一括変更
    find ~/.ssh -type d -print | xargs chmod 700 ; find ~/.ssh -type f -print | xargs chmod 600
    

参考先

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2