Github에 취미로 AWS키 같은거 퍼블릭으로 올리는 사람들이 꽤 많은데, 이를 뒤늦게 알아채고 git reset으로 돌리는 개발자들이 꽤 많다.
하지만,,, 정말 git에서 AWS키가 지워진건가?
일단 이런 폴더에서 작업을 진행하고 있다고 치자.
touch awskey.txt
git add .
git commit -m "awskey"
awskey라는 파일을 하나 만들고, 커밋까지 진행해주었다.
이렇게 커밋하여 깃허브에 푸시까지 했다면 동료 개발자들에게 집단 린치를 당했겠지만, 다행히 다시 제정신이 돌아와 커밋을 돌리는 작업을 한다.
git log
보아하니 d337490c3d8b00f0e742ed49fb479c9a4f4c73bf 커밋에서 문제가 생겼기 때문에, 그 이전 시점인 56e45f94da289d600ebf9d69bcdd65ac2e81399d 커밋으로 되돌아가면 좋을 것 같다.
git reset --hard 56e45f94da289d600ebf9d69bcdd65ac2e81399d
파일을 보아하니 잘 되돌아 온것 같다. 그리고 깃허브에 푸시를 하였고, 그렇게 문제는 해결되는 듯 싶었다.
AWS키를 노리는 사람들은 이런 개발자들의 실수를 잘 캐치한다.
깃허브에서 클론을 받아 이런 명령어를 실행해본다.
git reflog
reflog를 실행해보니 뭔가 수상한 내역들이 있다.
d337490 이부분에 무언가가 있을것만 같아 다음 명령어를 실행해본다.
git reset --hard d337490
!!!!
안전할 것만 같았던 AWS키가 AWS키 헌터들 손에 넘어가게 되었다.
[Git] GitHub 저장소의 특정 파일, 디렉토리 커밋기록을 모두 제거하기
참고