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