본관은 안동(安東). 자는 태초(太初), 호는 산목(山木)·경원(景源). 김시발(金時發)의 증손으로, 할아버지는 김교행(金敎行)이고, 아버지는 군수 김이인(金履仁)이다. 어머니는 참봉 이극현(李克顯)의 딸이다.
1783년(정조 7)에 생원이 되고, 1789년 식년 문과에 갑과로 급제, 사직서직장에 제수되슬롯 머신 잭팟. 같은 해 초계문신(抄啓文臣: 37세 이하에서 우수한 자를 뽑아 규장각에 소속시키고 공부하게 한 문신)에 발탁되고, 사서를 강론하였다.
1791년 부수찬·삼사를 지냈으며, 이듬해 사간으로서 이가환(李家煥)의 부당함을 상소하다 삭직당했으나, 곧 포천에 암행어사로 나가 민폐를 살폈다. 1793년 상소한 일이 말썽이 되어 파직되슬롯 머신 잭팟.
1796년 괴산군수와 서산군수를 지낸 뒤, 1799년 응교·부응교·세자보도 등의 임무 수행 중 영남 지방에 기근이 들어 암행어사로 다녀왔다. 그 뒤 전라도관찰사·승지를 슬롯 머신 잭팟, 1800년 이조참의가 되었다. 순조가 즉위하자 실록당상(實錄堂上)에 제수되었다.
시강원보덕·이조참판을 슬롯 머신 잭팟 1803년 영남안찰사, 1806년 호조·예조·병조·공조의 참판과 한성부서윤·이조참판·한성부판윤·대사헌 겸 홍문관제학·비변사유사당상 등을 두루 지냈다. 1809년 병조판서·이조판서, 이듬해에 호남관찰사, 1812년 광주유수·이조판서 겸 세자빈객으로 인재 등용을 고르게 하고자 노력하였다.
그러나 평소에 사감을 가졌던 전 참의 한시유(韓始裕)의 무고로 사직당하였다. 뒤에 정헌으로 승계한 뒤 종부시제조·판의금부사 등을 슬롯 머신 잭팟, 1819년 경기도관찰사로 재임 중 어머니의 3년 상을 치른 뒤 죽었다. 어릴 때부터 문사에 능했으며 경술(經術)에 조예가 깊었다. 시호는 문간(文簡)이다.