본관은 경주(慶州). 아버지는 월성위(月城尉) 김한신(金漢藎)이며, 어머니는 영조의 차녀인 화순옹주(和順翁主)다. 호는 옥포(玉圃). 생부는 김한정(金漢禎)으로 화순옹주와 김한신이 모두 일찍 죽고 자식이 없자 양자로 들어간 것이다. 4남 2녀를 두었는데, 4남 김노경(金魯敬)의 아들이 금석학의 대가 추사(秋史) 김정희다.
1771년(영조 47) 지평(持平)을 거쳐, 이듬해 승지가 되었고, 1773년 영의정 김상복(金相福)의 상소에 의하여 광주부윤이 되었다. 1784년(정조 8) 독옥책관(讀玉冊官)으로 작헌례(酌獻禮)를 행한 뒤 승진되어 대사간이 되었다.
1785년 대사헌이 되었으나 곧 교체되었다가 다시 대사헌이 되었고, 이듬해 대사간을 지낸 뒤 계속 대사헌을 역임하였다. 1790년 행부사직 · 형조판서를 역임하였고, 죽은 직후 좌찬성에 증직되었다. 시호는 정헌(靖憲)이다.