본관은 청풍(淸風). 자는 대백(大伯). 아버지는 군수 김안묵(金安默)이며, 어머니는 참봉 한사중(韓思重)의 딸이다.
1783년(정조 7) 진사가 된 후 1785년 영릉(永陵)·명릉(明陵)의 참봉을 거쳐 의금부동부도사·통례원인의(通禮院引儀)·형조좌랑·형조정랑·호조정랑 등을 거쳐 사도시·사옹원·장악원의 첨정과 돈녕부판관·선혜낭청 등을 역임하였다.
외직으로는 삼등(三登)·영유(永柔)현령, 순안·맹산현감, 함흥·광주판관, 선산·장성부사 및 임천군수·평양서윤·충주목사 등을 거쳤다. 지방수령으로 재직 중에는 관개·교량 등의 사업에 힘썼고 군역의 폐단이던 첨정(簽丁: 黃口簽丁의 준말로 어린 아이를 군역자로 등재하던 군역의 폐단)을 방지하고 세를 가볍게 하였다. 특히 평양서윤을 지낼 때의 진휼사업은 높이 평가되고 있다.