I've looked at Can we pass ENV variables through cmd line while building a docker image through dockerfile?  which shows me how to pass an environment variable with docker build. After seeing that the environment variable wasn't being defined, I looked at Passing environment variables not working with Docker but this concerns passing environment variables through docker run.
Here's my prod.Dockerfile:
FROM ubuntu:20.04
ARG SSH_PRIVATE_KEY
RUN echo "Key is $SSH_PRIVATE_KEY."
and the docker build command:
docker build -f prod.Dockerfile \
             --build-arg SHH_PRIVATE_KEY="$(cat ~/.ssh/id_rsa)" \
             .
Resulting output:
Key is .
Yet the output of cat ~/.ssh/id_rsa is:
-----BEGIN OPENSSH PRIVATE KEY-----
...
-----END OPENSSH PRIVATE KEY-----
What am I missing?