본관은 진주(晉州). 자는 기중(期中), 호는 표운(豹雲)·정은(貞隱). 현감 강이구(姜彛九)의 아들이다.
1837년 (헌종 3) 진사시를 거쳐 1848년 증광문과에 병과로 급제, 1850년(철종 1) 정자(正字)가 된 뒤 홍문관응교를 거쳐 1857년 사간원대사간이 되었다.
원래 북인계열로서 노론 중심의 세도정치 아래 중용되지 못하였으나, 흥선대원군이 집정한 후 남인계와 북인계를 많이 기용함에 따라 1866년에는 병인양요로 피폐해진 강화도에 위유사(慰諭使)로 나가게 되었다.
그뒤 대원군이 계속 중용하여 1871년 병조판서를 거쳐 이듬해 좌의정이 되었다. 1873년 대원군을 탄핵한 최익현(崔益鉉)의 처벌을 주장하였다가 고종이 친정하게 되면서 우의정 한계원(韓啓源)과 함께 파직당하였다.
1874년 재기용되어 판중추부사를 지내던 중 1878년 효휘전(孝徽殿)의 참례(參禮)에 불참한 죄로 평안남도 삼화(三和)에 잠시 유배되었다가 다시 복직되었다. 이듬해 일본의 인천항 개항요구에 반대하였으며 판중추부사로 치사하여 봉조하(奉朝賀)로서 기로소에 들어갔다.
1883년 대원군파로 몰려 임오군란 때 난도(亂徒)와 작당하였다는 탄핵을 받아 경상남도 안의로 유배, 이듬해 풀려나와 1887년 사면되었다. 시호는 익헌(翼憲)이다.