I'm trying to learn mathematical induction.
This is a notoriously difficult proof technique for people to understand when encountering it for the first time; however, there seem to be a few conceptual misunderstandings wrapped into your question that make it seem like your question is more about reindexing the sum than actually about constructing a valid induction proof.
The text asks for being totally rigorous i.e start induction from $k=0$.
Is the "i.e. start induction from $k=0$" part your own? Right now, it is difficult to tell where your reasoning and that of the text coincide and diverge. For instance, when you wrote $\sum_{i=0}^{n-1} 2i+1=n^2$, you need to know that this is ambiguous: did you mean
$$
\left(\sum_{i=0}^{n-1}2i\right)+1=n^2\quad\qquad\text{or}\qquad\qquad\sum_{i=0}^{n-1}(2i+1)=n^2\;?
$$
Thankfully, the context makes it clear that you meant the latter, but you do need to be careful when writing your expressions to avoid ambiguity. Now, Marco's comment addresses something important: you actually do not need to rewrite $\sum_{i=0}^{n-1}(2i+1)$ in order to prove that the sum of the first $n$ odd natural numbers is $n^2$. It seems like you may be confusing the roles of $i$ and $n$--for example, let $S(n)$ denote the following:
$$
S(n) : \sum_{i=0}^{n-1}(2i+1)=n^2.
$$
For what values of $n$ would you want the statement $S(n)$ to hold true? It seems like you think you need to start at $n=0$ instead of $n=1$, but this results in you encountering $\sum_{i=0}^{0-1}(2i+1)=\sum_{i=0}^{-1}(2i+1)=0=0^2$, where you use the fact that the empty sum is zero.
What makes you think that an induction proof is not totally rigorous if it does not start at $0$? An induction proof can be valid even when it starts off with a negative base case.
There really is no need to go through the trouble of rewriting the whole sum to use $k$ instead of $n$ and to make it so you can start at $k=0$. This is not helpful, not necessary, and it really only complicates matters. Perhaps it would be easiest to note that
$$
\sum_{i=0}^{n-1}(2i+1)=\sum_{i=1}^n(2i-1)=n^2,
$$
where the second sum gives you a more "natural" expression to work with. If you are dead set on inducting on $k$ instead of $n$, then you can tackle the problem as in Mark Bennet's answer, but this approach is really unnecessary, especially since you are trying to learn induction. Hopefully all of that commentary was helpful and not too verbose. I'm going to give you a proof below that proves your original statement and shows why rewriting it is really unnecessary.
Why rewriting the sum is really unnecessary: For $n\geq 1$ (notice how I'm starting at $n\geq 1$ and not $n\geq 0$; in this way, we actually begin with the first odd natural number, and we avoid the empty sum as well), let $S(n)$ denote the statement
$$
S(n) : \sum_{i=0}^{n-1}(2i+1)=n^2.
$$
Base case ($n=1$): $S(1)$ says that $\sum_{i=0}^{1-1}(2i+1)=\sum_{i=0}^{0}(2i+1)=2(0)+1=1=1^2$, and this is true.
Induction step: Fix some $k\geq 1$ and assume that $S(k)$ is true ($S(k)$ is the induction hypothesis) where
$$
S(k) : \color{blue}{\sum_{i=0}^{k-1}(2i+1)=k^2}.
$$
To be shown is that $S(k+1)$ follows where
$$
S(k+1) : \color{green}{\sum_{i=0}^{k}(2i+1)=(k+1)^2}.
$$
Starting with the left-hand side of $S(k+1)$,
\begin{align}
\color{green}{\sum_{i=0}^{k}(2i+1)}
&=(2k+1)+\color{blue}{\sum_{i=0}^{k-1}(2i+1)}\tag{by defn. of $\Sigma$}\\[0.75em]
&= (2k+1)+\color{blue}{k^2}\tag{by $S(k)$, the ind. hyp.}\\[0.5em]
&= k^2+2k+1\tag{rearrange}\\[0.5em]
&= \color{green}{(k+1)^2},\tag{factor}
\end{align}
we end up at the right-hand side of $S(k+1)$, completing the inductive step.
By mathematical induction, the statement $S(n)$ is true for all $n\geq 1$. $\blacksquare$
In the above proof, notice that we did not make use of the empty sum, and also notice that we still proved that the sum of the first $n$ odd natural numbers is $n^2$ without having to rewrite the sum. If you have any questions, feel free to comment.