I am assuming that you have enough permissions to create this directory.
To fix your problem, you can either ssh to some other location:
ssh user@some.host
and accept new key – it will create directory ~/.ssh and known_hosts underneath, or simply create it manually using
mkdir ~/.ssh
chmod 700 ~/.ssh
Note that chmod 700 is an important step!
After that, ssh-keygen should work without complaints.