@lonzaleggiera gave an excellent "algebraic proof" (+1). Here are two alternative arguments: one geometric and one topological. The topological one is noteworthy as it takes a different route to most solutions, by not showing that any maps are linear. However it uses invariance of domain instead, which is actually less trivial to prove than linearity. Credit for the topological solution to @PhoemueX for the comment here. Variants of this question have been asked so many times I expect someone has also posted the geometric solution too, at some point. In my view the one by @lonzaleggiera is the best of these 3, as it is the most succinct and self-contained, but the others are interesting in their own right.
Solution $2$ (Geometric): Let $V$ be a finite dimensional real vector space with Euclidean norm. Suppose that $g$ is a rigid motion of $V$, fixing the origin $O$. We will show that $g$ is linear. Bijectivity of an arbitrary rigid motion follows.
The vectors $Z$ in the line segment $XY$ are characterized by the condition $||X-Y|| =||X-Z|| + ||Z-Y||$, so $g$ preserves line segments.
Let $\lambda\geq1$ and $X\in V$. Then $Y=\lambda g(X)$ is the unique vector satisfying $||Y||=\lambda||X||$ and $g(X)$ lies on the line segment $OY$.
As $X$ lies on the line segment $O(\lambda X)$, we know $g(X)$ lies on the line segment $O(g(\lambda X))$. Further we know $||g(\lambda X)||=\lambda||X||$. Thus $g(\lambda X)=\lambda g(X)$.

The cases $\lambda\leq0$ and $\lambda\in (0,1)$ follow analogously.
Now consider a pair of vectors $X,Y$. We have a parallelogram $OX(X+Y)Y$. Thus for $\delta\in (0,||X||)$, if $V_1$ lies in the line segment $OX$, at distance $\delta$ from $O$, and $V_2$ lies in the line segment $Y(X+Y)$, at distance $\delta$ from $Y$, then $||V_1-V_2||=||Y||$.
Applying $g$ to this configuration, we must obtain a parallelogram $O(g(X))(g(X+Y))(g(Y))$, as $||g(V_1)-g(V_2)||=||g(Y)||$, for all $\delta\in (0,||X||)$. Thus $g(X+Y)=g(X)+g(Y)$.

Solution 3 (Topological):
Let $V$ be a finite dimensional real vector space with Euclidean norm. Suppose that $f$ is a rigid motion of $V$. Then $f$ is clearly injective and continuous, and im$(f)$ is non-empty.
Let $Y$ be an accumulation point of im$(f)$. Then we have a sequence of vectors $X_i\in V$ with $f(X_i)\to Y$ and $f(X_i)$ Cauchy, so $X_i$ is Cauchy. Let $X_i\to X$. Then by continuity, $f(X)=Y$, so im$(f)$ is closed.
By invariance of domain we also know that im$(f)$ is open. As it is also non-empty, by connectedness of $V$ we have that im$(f)$ is the whole of $V$.