Commençons par les pommes de terre: pelez-les et coupez-les en cubes de taille moyenne. Mettez-les dans la casserole, couvrez d'eau froide et ajoutez une pincée de sel.
Portez à ébullition et laissez cuire environ 20 minutes, jusqu'à ce que les pommes de terre soient tendres.
Pendant ce temps, pelez et hachez finement les oignons. Lavez et coupez le céleri en petits dés.
Dans une poêle, faites revenir les oignons et le céleri dans l'huile jusqu'à ce qu'ils soient tendres et translucides.
Égouttez et émiettez le saumon en retirant la peau et les arêtes. Conservez le jus.
Une fois les pommes de terre cuites, égouttez-les et réduisez-les en purée avec le beurre et le lait chaud. Salez et poivrez au goût.
Dans un grand bol, mélangez le saumon émietté, les légumes cuits et la moitié des œufs battus. Ajoutez un peu du jus conservé si le mélange semble trop sec.
Préchauffez le four à 180°C.
Dans votre plat à gratin, étalez la moitié de la purée de pommes de terre. Recouvrez du mélange au saumon, puis terminez avec le reste de la purée.
Badigeonnez le dessus avec le reste des œufs battus et faites des stries à la fourchette pour créer un joli motif.
Enfournez pour 45 minutes, jusqu'à ce que le dessus soit bien doré.