본관은 광산(光山). 자는 광서(光瑞). 호는 낙선(樂善). 아버지는 첨지중추부사(僉知中樞府事)에 추증된 김진남(金振南), 어머니는 연일정씨(延日鄭氏)로 통덕랑(通德郞) 정발(鄭勃)의 딸이며, 뒤에 통덕랑 김진호(金振護)에게 입양되었다. 권상하(權尙夏)의 문인.
어려서부터 재주가 남달리 뛰어나서 13, 4세에 경사(經史)를 섭렵하고 제자백가(諸子百家)를 통달하였다. 효성이 지극하여 생가와 양가의 부모상(父母喪)을 예를 다하여 치루었고, 경(敬)을 실천하는 수신의 학문에 힘을 썼다.
당쟁으로 정치가 자주 뒤바뀌면서 많은 사람들이 죽음을 당하는 것을 보고 벼슬에 나갈 것을 포기하고 학문에만 열중하면서 후진의 지도에 힘썼다. 물망어(勿妄語) 물망동(勿妄動)을 좌우명으로 삼아 근신에 노력하고 서지숙(徐持叔)과 이여후(李汝厚)가 마음을 돌려 벼슬에 나갈 것을 권유했으나 듣지 않았다.
한원진(韓元震) 등과 학문을 연마하고 도의로 교유하였으며 스승이 오륜잠(五倫箴)을 지어준 일이 있다. 송시열(宋時烈)과 송준길(宋浚吉)의 문묘(文廟) 종사를 요청하였고, 진덕수(眞德秀)와 사방득(謝枋得)·김사백(金斯百)의 예에 따라 『고문집요(古文輯要)』 8권을 편찬했으며, 성리학은 이이(李珥)의 기발이승일도설(氣發理乘一到說)에 따랐다. 저서로는 『낙선당집(樂善堂集)』 2권이 있다.