Level Goal

There is a git repository at ssh://bandit31-git@localhost/home/bandit31-git/repo via the port 2220. The password for the user bandit31-git is the same as for the user bandit31.

Clone the repository and find the password for the next level.

Commands you may need to solve this level

  • git

My Answer (Step by step)

  1. 連線到伺服器並登入
ssh bandit31@bandit.labs.overthewire.org -p 2220
  1. 透過 mktemp 指令產生暫存資料夾,並透過 cd 指令進入它,以便稍後 clone git repo
mktemp -d
cd /tmp/tmp.Tc5YfqLCbF
  1. 透過 git 指令將 repo clone 下來
git clone ssh://bandit31-git@localhost:2220/home/bandit31-git/repo
  1. 透過 cd 指令進入 repo 資料夾,並透過 ls 指令查看資料夾內容
cd repo
ls
# README.md
  1. 透過 cat 指令讀取 README.md 檔案,發現沒有密碼,但有要求我們將一個檔案推到遠程 repo
cat README.md
# This time your task is to push a file to the remote repository.

# Details:
#     File name: key.txt
#     Content: 'May I come in?'
#     Branch: master
  1. 透過 touch 指令建立檔案 key.txt,並透過 vim, vi, nano 等指令編輯該檔案
touch key.txt
nano key.txt
  1. 透過 git status 指令查看 repo 情況,發現 git 沒有偵測到有新檔案,透過 ls 指令發現目錄還有一個 .gitignore
git status
ls -al
  1. 透過 cat 指令讀取 .gitignore 內容,發現忽略所有 .txt 檔。
cat .gitignore
# *.txt
  1. 透過 rm 指令將其刪除,並重新透過 git status 指令查看情況,發現 git 有偵測到 repo 發生變化
rm .gitignore
git status
  1. 透過 git add 指令將所有變化從工作目錄移至暫存區,並透過 git commit 指令把暫存區的內容移至儲存庫(repo)
git add .
git commit -m "add key.txt"
  1. 透過 git push 指令將本地 repo 與遠程 repo 同步,即可獲取 Level 32 密碼!
git push