ssh on gitea with docker

Gitea 是一個開源的 git 伺服器,他的界面幾乎和 GitHub 一模一樣,但是完全開源而且非常輕,甚至一片樹梅派就可以開伺服器了。Gitea 因為是使用 Golang 編寫的,所以提供各種平台的執行檔。我選擇透過 docker 裝 Gitea 伺服器,但是這樣有一個問題,gitea 伺服器開在 container 內,沒辦法使用標準的 22 port,所以 git clone 就必須加上一個醜醜的數字,像是這樣 git clone [email protected]:10022:user/repo.git 這個問題 Gitea 官方已經有提供完整的教學了,但是是英文版,我這篇文章是我讀完消化過後的中文版教學 容器 ssh 穿透 因為 Gitea 的 ssh 是跑在容器裡,我沒辦法讓他和 host 共用 22 port,所以要透過 host 「轉發」連線。 1. 建立 git 使用者 先在 host 建立一個名叫 git 的使用者,因為這個帳號會被對應到容器內的 git 使用者,所以要有一樣的 UID, GID sudo adduser git grep git /etc/passwd 記好 git 的 UID 和 GID git:x:1002:1002:,,,:/home/git:/bin/bash ------^^^^ ^^^^ ------GID UID 2....

2021-July-13 · 1 分鐘 · simbafs

Cast Phone Screen to Computer

有沒有一種經驗是某的應用程式手機板操作勉強算順暢,但是一電腦上就炸開,反應慢到靠北、界面又很難用(沒錯 messenger 我正在看著你)。這個時候相信你會和我一樣想把手機畫面投影到電腦上的一個視窗裡面,最好可以互動、可以打字。有人第一個想法是在手機開 VNC 伺服器,但是這個方法有點麻煩,這篇文章介紹的是目前我覺得最佳解決方案。 SCRCPY 這個軟體支援有線( USB debug )、無線( WIFI )的連接,還支援螢幕錄影和傳檔案。最重要的是,開在電腦上的視窗可以調整大小,不需要侷限在一個小小的視窗內,你最大可以放大到全螢幕!在某種意義上你獲得了一台和電腦一樣大的手機。 Installation 安裝流程意外的簡單,只需要用 apt 就可以安裝了,或是你可以自己 build,稍微看了一下 說明 ,看起來不困難,但是既然 apt 就可以安裝了我們就省一點時間 $ sudo apt install scrcpy USB debug 首先無論是有線無線都要先打開手機的 USB debug 選項,在開發人員選項裡面,詳細步驟請看 官方文件。 USB 如果不介意有一條線插著~~(順便充電)~~的話,投影畫面非常簡單,只有兩個步驟: 插上 USB 並且無論跳出什麼都按「同意」「OK」 打開終端機,執行 scrcpy 然後就會有一個視窗跳出來,你現在就可以在電腦上滑手機了! Wireless 無線的話比較麻煩,首先是必須要可以連線,看是在同一個區域網路或是 VPN、ssh tunnel 都可以。再來是因為連線設定頗麻煩,所以我把相關的步驟寫成一個 script,下載後給予執行權限就可以執行了(當然要安裝 scrcpy )。有線的方式一樣很簡單,不用加任何選項就可以連接了。 如果要啟用無線,只需要加上 -w 選項(用預設的 ip 192.168.43.1) 如果 ip 不是預設的話,可以加上 -i IP 來指定其他的 ip 加上 -f 可以開啟全螢幕 參連連結 https://github.com/Genymobile/scrcpy https://developer.android.com/studio/debug/dev-options https://gist.github.com/simbafs/9132289f63368ad325d6a2ef62be7a20

2021-June-14 · 1 分鐘 · simbafs

mxlinux boot with systemd

問題 在 mxlinux 裡面,預設的 init 不是 systmed,這導致如果想用 systemctl 的時候就會跳出錯誤說 System has not been booted with systemd as init system 像是在安裝 mongodb-org 的時候他就要用到 systemctl 然後就會出錯。 解法 其實 mxlinux 已經幫我們想好解法了,在開機選項時選 Advence > Systemd 就會以 systemd 開機

2020-September-5 · 1 分鐘 · simbafs

mxlinux-change-workspace

切換工作區 今天想要在 mxlinux 中快速的切換工作區 我看到可以用滑鼠滾輪切換 可是我想要的是鍵盤快捷鍵 上網查了一下 發現可以透過 Ctrl+Alt+up/down/home/end 來切換 參考資料 https://unix.stackexchange.com/questions/270334/how-to-move-a-window-to-another-workspace-in-xfce

2020-May-8 · 1 分鐘 · simbafs

gpg

今天心血來潮想設定 GPG,網路上查了一個教學,無疑的又遇到一個坑 坑 & 解法 我按照他的作法弄完後就是沒辦法 commit 他說 GPG 無法簽章 後來我發現是我的 name 填錯(應該啦,我猜的) 總而言之就重新產生 GPG key 就好了 name 和 git 設定的一樣 指令 $ gpg --full-gen-key $ gpg --list-secret-keys $ gpg --armor --export <secret key> 刪除金鑰 在刪除的時候分成兩步驟,刪除私鑰、刪除公鑰。在刪除之前要先知道要刪除的金鑰的 ID gpg --list-keys 找到那串很長的文字,那就是 ID,複製起來,他起來也許會像這樣 JFDKSA8FEWHE29HFVC92UHFPA93WOHFVDOPA39U2 再來用兩個指令就可以刪除了,注意一定要先刪私鑰。 gpg --delete-secret-key <ID> gpg --delete-key <ID>

2020-March-28 · 1 分鐘 · simbafs

isolate

我有一個放了很久的計畫,就是自己寫一個 OJ,因為我覺得現在的那個太難用了。 我很快的建立 repo 但是卻完全沒有進展,我寫了一個 shell script 幫忙編譯執行程式之後我就在也沒有動過他了 我沒有繼續動工的原因是我不知道如何隔離使用者提交的程式碼 我想過 docker 可是據說還是不安全 還有 chroot 但是我不知道有沒有比 docker 安全而且設定好麻煩 昨天去考 TOI 入營考(當然沒進)的時候,我終於看到大名鼎鼎的 CMS 了! 出來之後我發現他是用一個叫 isolate 的程式來做沙箱測試 而且這好像是 IOI 自己寫的,應該是蠻安全的(吧?) 今天成功編譯過後把心得寫下來

2020-March-9 · 1 分鐘 · simbafs

youtube-dl

最近在下載 youtube 音樂,每次下載都要把檔案重新改名,很麻煩。所以就想要寫一個 shell script 來幫我解決。 首先改名字我相信 youtube-dl 一定有提供這個選項,於是開始查文件。 看到 -o ,接下來講遇到的坑 -o 坑 -o 後面接的是一個 template string ,不是檔名,而且就算指定副檔名是 .mp3 了還是要寫成 %(ext)s

2020-March-4 · 1 分鐘 · simbafs

ssh-tunnel

昨天架好了 reverse ssh 讓我可以連回學校 server 今天來研究 ssh tunnel 簡介 ssh tunnel 分正反向 其實他們的差別只有在方向不一樣 連語法參數都一樣 正向 tunnel 正向的 tunnel 參數是 -L 語法: ssh -L [bind_address:]port:host:hostport ssh -L [bind_address:]port:remote_socket ssh -L local_socket:host:hostport ssh -L local_socket:remote_socket 反向 tunnel ssh -R [bind_address:]port:host:hostport ssh -R [bind_address:]port:local_socket ssh -R remote_socket:host:hostport ssh -R remote_socket:local_socket ssh -R [bind_address:]port 心得 看起來好像很難 但是其實用下面這個就夠了 正向: ssh -L <local port>:localhost:<remote port> <user>@<remote> 反向; ssh -R <remote port>:localhost:<local port> <user>@<remote> 總而言之就是前面的和選項一樣 如果是 -L 那前面就是 local port 如果是 -R 那前面就是 remote port...

2020-February-24 · 1 分鐘 · simbafs

reverse-ssh

一直以來連線回社辦的電腦都要走 webtty 再開 tmate 但是今天發現了一個新的方法可以透過反向的 ssh 連回社辦 reverse ssh 在社辦電腦 $ ssh -NfR 2222:localhost:22 [email protected] 這可以建立一個連線 這時候到 simba-vps $ ssh [email protected] -p 2222 就可以連線回社辦伺服器了 autossh 但是這樣做 ssh 連線有可能會超時然後斷掉 這時候可以透過 autossh 來幫我們自動建立連線 在社辦電腦 $ apt install autossh $ autossh -Mf 2222 -NR 1111:localhost:22 [email protected] -p 22 這樣就可以在 vps 上 $ ssh [email protected] -p 1111 來連回社辦啦! 最後可以把這堆在 vps 上再做一次就可以在 internet 連回社辦伺服器了 參考網址 https://stackoverflow.com/questions/15983795/how-do-i-establish-a-bidirectional-ssh-tunnel https://ez3c.tw/2043 https://www.ubuntu-tw.org/modules/newbb/viewtopic.php?viewmode=compact&topic_id=17538&forum=7 http://blog.adahsu.net/2007/11/ssh-reverse-tunnel.html https://codertw.com/%E4%BC%BA%E6%9C%8D%E5%99%A8/377688/ 這篇講 ssh tunnel 最清楚 https://yu-jack.github.io/2019/01/08/ssh-tunnel/

2020-February-23 · 1 分鐘 · simbafs

server-tool

用 bash 寫 log 分析工具 因為我們的 server 不知道是為什麼一直受到 DDoS 攻擊 我想知道是什麼時段容易受到攻擊和每次多久、來自那個 ip 於是我花了一點時間寫了幾個簡單的 script

2020-February-16 · 1 分鐘 · simbafs