星期日, 6月 27, 2021

使用 ssh-agent 搭配 Preemptible GCE 暫時連線只有內部IP GCE 小記

使用 ssh-agent 搭配 Preemptible GCE 暫時連線只有內部IP GCE 小記


OS: openSUSE Leap 15.2

gcloud: 340.0.0



WFH 期間, 有時候可能要臨時連線雲端上面的主機, 但是有些專案的主機未必有對外 IP, 連線可能的方式有

  • 透過 VPN 進行連接

  • 使用 Bastion host 方式 來進行連接


今天要實作的就是以 Bastion host 方式( 使用 Preemptible GCE ) 搭配 ssh-agent 來進行連線


首先先來使用 gcloud 指令建立測試的 內部 GCE


# gcloud  compute  instances  create  --zone  asia-east1-b  --machine-type  n1-standard-1  --image-project  opensuse-cloud  --image-family  opensuse-leap  --subnet  sakana-test-10-12-53  --boot-disk-size  30  --boot-disk-device-name  sakana-disk  --boot-disk-type  pd-standard  --scopes  service-control,service-management,storage-rw,bigquery,logging-write,monitoring-write,trace   test2021062601 --no-address  --project  sakanatest


  • 這邊使用 --no-address 的方式, 告訴 gcloud 不要建立外部 IP

  • 這邊我是指定在某一個 subnet



再來建立要來連線的 Bastion Host, ( 使用 Preemptible GCE, 當然也是 openSUSE Leap )


# gcloud compute instances  create --maintenance-policy=TERMINATE  --preemptible --zone  asia-east1-b  --machine-type  n1-standard-1  --image-project  opensuse-cloud --image-family  opensuse-leap --subnet  sakana-test-10-12-53 --boot-disk-size  30  --boot-disk-device-name  sakana-disk --boot-disk-type  pd-standard  --scopes  service-control,service-management,storage-rw,bigquery,logging-write,monitoring-write,trace  test2021062602  --project  sakanatest


  • 使用 Preemptible 的原因是因為, 這台 VM 最多不會超過 24 小時且價格相對於正常的 GCE, 最多可以節省 80 %, 可以參考官網 https://cloud.google.com/preemptible-vms

  • 要使用 Preemptible 會同時使用 --maintenance-policy=TERMINATE  --preemptible

  • 機器類型可以使用客製化的規格, 使用更小的會更省錢 :p

  • Bastion Host 請自行設定只能從家中的固定 IP 進行連線


接下來就是家中主機端這邊


作法上使用 ssh-agent 搭配 Forwarding 功能, 先連到 Bastion Host, 再經由 Bastion Host 連線到內部主機

  • 好處是 ssh-agent 搭配 forwarding 功能可以讓遠端的機器, 在不透過網路傳送金鑰的狀況下, 跟自己的主機進行驗證, 很適合有防火牆的狀況. 也就是不用把金鑰存放到堡壘機或是跳板機上 :)


參考網路上找到的文章


首先觀察機器上面有沒有啟用 ssh-agent


可以使用 ssh-agent -s 觀察

> ssh-agent  -s


SSH_AUTH_SOCK=/tmp/ssh-2OKjHwAUgnXd/agent.8965; export SSH_AUTH_SOCK;

SSH_AGENT_PID=8966; export SSH_AGENT_PID;

echo Agent pid 8966;


如果 ssh-agent 沒有啟動可以參考上述的文章使用

> eval  $(ssh-agent)


eval 用法可參考鳥哥 http://linux.vbird.org/linux_basic/0320bash/0320bash.php


要知道目前 ssh-agent 有哪些 Key, 可以使用

  • > ssh-add  -l

  • > ssh-add  -L


使用 ssh-add 指定加入私鑰

>  ssh-add  ~/.ssh/YOUR_PRIVATE_KEY


  • 這邊請對應要連線的私鑰檔案位置, 例如 ~/.ssh/id_rsa


接下來就是在使用 SSH 指令的時候加上 -A 參數即可


> ssh  -A  -l  sakana  34.81.6.152


openSUSE Leap 15.2 x86_64 (64-bit)


As "root" use the:

- zypper command for package management

- yast command for configuration management


Have a lot of fun…

sakana@test2021062602:~>


  • 使用 -A 進行 Forwarding

  • 使用者名稱請對應到金鑰的使用者

  • 後面請對應到 Bastion Host 對外 IP


目前已經在 Bastion Host, 接下來嘗試連線到內部主機, ssh 後面接對方內部 IP


> ssh  -l  sakana  10.12.53.32


openSUSE Leap 15.2 x86_64 (64-bit)


As "root" use the:

- zypper command for package management

- yast command for configuration management


Have a lot of fun...

sakana@test2021062601:~>


搞定收工

先紀錄下來, 以免之後自己又忘記



Notes: 

之前有在 Cloud Shell 以及主機使用過比較沒常用的 IAP, 但是沒有成功, 就沒有花時間去研究他


# gcloud beta compute ssh --zone "asia-east1-b" "test2021062601"  --tunnel-through-iap --project "sakanatest"


ERROR: (gcloud.beta.compute.start-iap-tunnel) Error while connecting [4003: 'failed to connect to backend']. (Failed to connect to port 22)


另外如果要刪除 ssh-agent 的 Key, 可以使用 

  • ssh-add -D 刪除所有的 Key

  • ssh-add -d 刪除指定的 Key



~ enjoy it



Reference:

星期三, 6月 23, 2021

使用 Xournal 在 PDF 簽名 in openSUSE Leap 15.2 小記

使用 Xournal 在 PDF 簽名 in openSUSE Leap 15.2  小記


OS: openSUSE Leap 15.2


現在因為疫情因素, 很多人都要 Work From Home.

但是有些文件是需要簽名回傳的, 這個時候不想出門列印浪費紙張, 那該怎辦呢?


在 PDF 上面簽名, 目前自己的作法並不是使用電子簽署的方式, 而是比較常見的, 在 PDF 上面加上注釋的方式來進行簽名. 目前我有使用兩種作法, 然後暫時沒有使用自行簽名存檔後去背儲存的方式.



作法 1: 在手機上安裝 Adobe Acrobat 軟體直接用手機簽署


參考 就是教不落的文章


安裝 Adobe Acrobat DC – PDF Reader

就可以在手機進行 PDF 簽署


優點

  • 在手機上就可以進行簽署, 筆觸可以比較像自己簽名


缺點

  • 要註冊 Adobe ID 才可以使用


至於簽名能夠存在雲端上面, 我個人不知道是優點還是缺點, 反正我是沒有存.



作法 2: 安裝 Xournal 來進行 PDF 簽名


剛剛是在手機上面, 然後要註冊 Adobe ID 才能進行

那如果是在 PC 上面呢, 參考網路的資訊, 我後來選擇使用 Xournal 這個軟體


使用 zypper 安裝 xournal


# zypper  install  xournal


Loading repository data...

Reading installed packages...

Resolving package dependencies...


The following 4 NEW packages are going to be installed:

  libart_lgpl_2-2 libgnomecanvas-2-0 libgnomecanvas-lang xournal


The following recommended package was automatically selected:

  libgnomecanvas-lang


4 new packages to install.

Overall download size: 669.5 KiB. Already cached: 0 B. After the operation,

additional 2.0 MiB will be used.

Continue? [y/n/v/...? shows all options] (y):  Y


安裝完成之後在應用程式會看到 Xournal




接下來就試試看進行 PDF 簽名


筆者以 openSUSE 文件為例


下載 openSUSE Leap 15.3 Start Up Guide PDF

在該 PDF 上面按滑鼠右鍵 -- > 以其他應用程式開啟

選取 Xournal 來進行開啟



預設開啟的時候就是畫筆

這個時候就使用畫筆來進行簽名


  • 這個時候大概就會希望有個手寫版 …. 用滑鼠簽名真的很累 QQ



那要如何存檔呢?


只要點選 檔案 -- > 匯出至 PDF

點選 儲存就可以了


優點

  • 在自己的設備上進行, 控管上比較放心, 也不用註冊帳號


缺點

  • 如果沒有手寫版, 用滑鼠簽名有點痛苦



這樣應該可以暫時解決回簽的問題


~ enjoy it


Reference: