Linux Administration Build 5 Hands-On Linux Projects 2022 Docker篇(一)

課程連結: https://www.udemy.com/course/linux-administration-build-hands-on-linux-projects/

前言

因為最近工作剛好有機會碰到主機的內容,剛好看到這個課程正在udemy 上特價,對於課程內容蠻有興趣的,所以就買了課程補充一下相關知識。
希望透過邊上課邊做筆記,一方面加深自己印象,一方面之後有需要的話也可以翻查。

有些內容不曉得放上來是否會有問題,所以部分資訊就不會提供,僅在本機端做紀錄,如果有需要的人可以透過email 來互相討論。

另外稍微說一下我對於這堂課的想法,也許可以給也想買課程的人一些動力:
這堂課都是以英文在上課,老師稍微有一些口音,但不會到很難理解,或是需要重聽好幾次,
通常搭配英文字幕以及指令,基本上就能懂每一段要做什麼。
每隔幾個章節會有小小測驗,能讓自己釐清對於前一part 的理解是否完全,我覺得是蠻不錯的方式,
測驗也都是英文,但主要是在問這段指令會有什麼效果,或是想達到什麼目的應該透過哪個指令的單選題,
只要依照課程的進度安排,一邊實作練習,應該都能回答正確。

這邊我想說的是,有些人蠻害怕英文,每次開啟stackOverFlow 找解答,第一件事情就是把網站翻譯成中文,
但我覺得可以透過日常的閱讀訓練,讓自己的英文能力進步,也能有更多管道來學習。
不過如果課程的英文真的讓你卻步的話,也可以參考將英文字幕轉成中文,
以上小小心得寫在前言,完課後再補上完整的心得!


Lesson 1-1

在 Digital Ocean 上建立主機(使用課程推薦連結,可獲得60天 USD$100)
由此註冊
ps. 需先預刷 USD$5 測試信用卡或paypal,後續可以用在Digital Ocean 上

pps. 也可以用 vm 於本機安裝環境,這次先依照課程內容執行。
對安裝環境有興趣的話,可以試試看,也可以參考我之前的另一篇安裝LENP(CentOs7)文章

ppps. 也可以安裝老師設定好的OVA檔,直接在VMWare 上安裝即可,因為我不確定是不是可以提供老師的google drive載點,就不放上來了。

以下正題:

  • 選擇 create droplet (課程示範使用 ubuntu)
    先設定用密碼登入 ,passwd: tafnv5mc2YwRut8e
    下一堂課會教改成SSH key登入。

  • 主機開立的條件選擇

    • Ubuntu
    • 每個月 USD$10 (50GB)
    • 建議開啟備份,但因為我只是要上課,不希望多花錢,所以就沒有勾選。
  • 登入,可使用網頁上的console 登入,但不建議,除非被防火牆擋住還是其他問題無法登入,
    這邊使用 putty 來登入主機:

  1. 複製主機的ip
  2. login as root && password
  3. 執行更新
    1
    apt update && apt full-upgrade -y

Lesson1-2 以SSH key 登入

  • 建立ssh keys
  1. 使用linux 語法
    1
    2
    ssh-keygen -t rsa -b 2048 -C 'keys generated on Apr 2022'
    # |-type-|-length-|-comment-|
  2. 使用putty gen 工具
    參考

這邊可以使用git bash 來操作第一個選項,

1
2
3
4
5
6
ls ~/.ssh
# 可以看到建立起來的id_rsa(私鑰) & id_rsa.pub(公鑰)

cat ~/.ssh/id_rsa.pub
#注意,是將公鑰放到主機上,絕對不要把私鑰提供給任何人
#看到公鑰內容,並選取複製起來,待會要貼到digital ocean 的設定上
  1. DigitalOcean-> Settings -> Security -> Add SSH Keys
    將公鑰內容貼上,並命名
  2. 將ssh 註冊到主機上
    於本地輸入
    1
    2
    ssh-copy-id root@your_ip_addr
    #yes
  3. 於主機上檢查 ssh key 是否被正確註冊上去
    1
    2
    cat ~/.ssh/authorized_keys
    # 可看到一把公鑰在上面
  4. 透過ssh 連線到主機
    1
    ssh root@your_ip_addr
  • 補充:可以透過alias 設定縮寫,下次只要輸入alias 的名稱就可以連線
    1
    alias alias_name='ssh root@your_ip_addr'
  1. 取消密碼登入
    1
    2
    vi /etc/ssh/sshd_config
    #找到PasswordAuthentication 將yes 改成no
  2. 重啟ssh
    1
    systemctl restart ssh

這樣我們就開了一台主機,並且可以在本機端透過ssh 方式連線到主機,
未來我們的操作都會在本機,透過git bash 連線來進行操作。