יוחנן בן קרח היה ראש הצבא בתקופת גדליהו בן אחיקם, אחרי מותו של צדקיהו, מלך יהודה.
רקע
לאחר שנבוכדנצר מלך בבל החריב את בית המקדש הראשון, החליט להשאיר גרעין יהודי בארץ ישראל שהיה מורכב מאנשים המשתייכים לדלת העם. נבוכדנצר הפקיד את גדליהו בן אחיקם כמנהיגם של האנשים שבארץ יהודה. יוחנן בן קרח וקצינים נוספים, משרידי הצבא, הצטרפו אליו עם חייליהם.
תחת שלטון גדליהו
לקראת ראש השנה הגיעו יוחנן וחייליו למצפה והודיעו לגדליהו שישמעאל בן נתניה זומם להורגו, כנראה בשליחותו של בעליס, מלך בני עמון. יוחנן בן קרח אף הציע לו שהוא יהרוג את ישמעאל בן נתניה בסתר, מחשש (שהתאמת) שעם מותו של גדליהו יקיץ הקץ על היישוב היהודי בארץ. גדליה בן אחיקם לא קיבל את אזהרותיו ואף אסר עליו להרוג את ישמעאל.
ישמעאל בן נתניה אכן הגיע בראש השנה למצפה ועמו עשרה חיילים. בזמן הסעודה הכו את גדליה ואת כל האנשים שהיו אתו, ביניהם אנשי מלך בבל. למחרת באו שמונים איש מהשומרון וגם אותם רצחו ישמעאל ואנשיו, פרט לעשרה אנשים שנתנו את כל מחסני התבואה שלהם על מנת שלא יהרגם.
לאחר מות גדליהו
ישמעאל לקח בשבי ”אֶת כָּל שְׁאֵרִית הָעָם אֲשֶׁר בַּמִּצְפָּה אֶת בְּנוֹת הַמֶּלֶךְ וְאֶת כָּל הָעָם הַנִּשְׁאָרִים בַּמִּצְפָּה” (ירמיה, מ"א, י') והתקדם לעבר בני עמון. יוחנן בן קרח יצא כנגד ישמעאל ועשרת חייליו והשיב את העם שהיה איתו למצפה; ישמעאל נמלט אל בני עמון עם שמונה אנשים בלבד. הפסוקים אינם מתארים את המלחמה אלא רק את נחישותו של יוחנן ואנשיו לשמור על שארית הפליטה.
לאחר שיוחנן בן קרח הציל את העם הנשאר נאספו כל העם ליד בית לחם, בדרכם לרדת למצרים, בפחדם מזעמו של נבוכדנצר. הסיבה לפחד היה מפני שכאשר ישמעאל הרג את נציגו של נבוכדנצר, גדליה בן אחיקם, הרג גם את חיל המצב הבבלי שהיה איתו. המלך עלול היה לחשוב שהעם ממשיך במרד של צדקיהו והיה מעניש אותם קשות. לכן העם פנה לנביא ירמיה בבקשת עזרה שיתפלל עליהם ויביא את דבר ה' האם לברוח למצרים או להישאר ביהודה. לאחר עשרה ימים הביא ירמיה את דבר ה': לא לרדת למצרים ולהישאר ביהודה. אם יעשו כן נבוכדנצר יאמין להם והם ישגשגו, ובמידה ולא – חרב נבוכדנצר תשיג אותם במצרים.
יוחנן בן קרח והעם לא הסכימו לקבל את דברי הנבואה וטענו נגד ירמיהו: ”שֶׁקֶר אַתָּה מְדַבֵּר” (ירמיה, מ"ג, ב'). העם ירד למצרים בניגוד לאזהרות ירמיהו, ויוחנן בן קרח מת שם.