hamn (Old Swedish) comes from Old Norse hǫfn, from Proto-Germanic habnō, from Proto-Indo-European kopno-.