Nach dem Besuch eines Humanistischen Gymnasiums trat Keller 1861 als Freiwilliger in das 1. Feldartillerie-Regiment „Prinzregent Luitpold“ der Bayerischen Armee ein. Ab 1863 war er als Junker im 4. Feldartillerie-Regiment „König“ und wurde dort 1866 Sekondeleutnant. Als solcher nahm er 1866 am Krieg gegen Preußen teil, kämpfte in den Gefechten von Helmstadt und Roßbrunn und war bei der Beschießung von Würzburg. Von 1868/70 und 1871/72 absolvierte Keller die Bayerische Kriegsakademie, die ihm die Qualifikation für den Generalstab aussprach. Unterbrochen wurde seine Ausbildung durch den Deutsch-Französischen Krieg. In dieser Zeit war er zunächst bei seinem Stammregiment, fungierte dann als Adjutant der Reserve-Artillerie-Abteilung des I. Armee-Korps und machten die Belagerung von Paris sowie Schlacht von Orléans mit. 1875 wurde Keller zum Hauptmann befördert, kurzzeitig als Lehrer an der Kriegsschule verwendet und zur Zentralstelle des Generalstabs versetzt. Von 1878 bis 1881 war er Zweiter Generalstabsoffizier beim Generalkommando des II. Armee-Korps. Keller kehrte anschließend in den Truppendienst zurück und erhielt eine Stelle als Batteriechef im 2. Feldartillerie-Regiment „vacant Brodeßer“. Im weiteren Verlauf seiner Militärkarriere war Keller als Generalmajor vom 31. Mai 1895 bis 19. April 1898 Kommandeur der 1. Feldartillerie-Brigade. Anschließend wurde er zum Generalleutnant befördert und zum Inspekteur der Fußartillerie ernannt. Am 16. Juni 1900 stellte man ihn zur Disposition.