# 探索 GCE ssh 連線管理機制 ## GCE SSH 管理方式 1. OS Login 2. Manual add ssh key to instance Meta 3. Self management in Linux ### OS Login 花了很多時間嘗試 Google OS Login,遇到的問題是 > 裝置上需要安裝 gcloud SDK 認證才可以進行 OS Login 但我的使用情境裝置無法安裝 gcloud SDK,本來想要想辦法繞過這個限制,結論是**不行** 因為 OS login 有自己的管理流程,這套機制會動態的產生 Linux User 及 ssh key,以為可以取得 ssh key 直接讓裝置進行連線,但因動態產生的 key 不是永久有效,且帳戶權限的生命週期無法從裝置端來掌控 #### 結論 >適合可以安裝 Gcloud SDK 的環境,直接在 Google IAM 上管控權限很方便 --- ### Manual add ssh key to instance Meta 官方提供的第二個方式,直接在 GCE instance 管理頁面的 Meta 介面增加 ssh key,但遇到的問題是 > 登入的帳戶有 sudo 的權限,就算設置了 root 的 password 也無法限制 沒有找到限制手動在 meta 新增 ssh key 使用者權限的方法,後來發現透過 GCE 新增也會自動產生 Linux User 並由 GCE 設置權限 #### 結論 > 適合需要 ssh root 權限的裝置 --- ### Self managment in Linux 最後決定自行管制 ssh 連線帳戶,需要在 GCE instance 上做以下設置 1. 新增 Linux user 2. 授權 ssh public key #### 結論 > 適合需要管控 Linux user 權限,但管理較麻煩得在 Linux user 目錄下管理合法的 ssh key --- ## Reference: - [About OS Login](https://cloud.google.com/compute/docs/oslogin) - [Add SSH keys to VMs](https://cloud.google.com/compute/docs/connect/add-ssh-keys) - [How To Configure SSH Key-Based Authentication on a Linux Server](https://www.digitalocean.com/community/tutorials/how-to-configure-ssh-key-based-authentication-on-a-linux-server) - [How to Create Users in Linux](https://linuxize.com/post/how-to-create-users-in-linux-using-the-useradd-command/)