You should watch/rewatch the Say Hello to Laravel Homestead 2.0 laracast.
Otherwise, ~/.ssh/id_rsa.pub and ~/.ssh/id_rsa are files in the host machine that contain the public and private SSH keys, respectively. Using the standard method of generating ssh keys ssh-keygen -t rsa -C "your_email@example.com" they will be stored in that directory and much simpler to use that way
In the folders section, yes, local projects are stored in the map: directory and accessible in homestead as defined in the to:, but you can also map folders for each project you want and they'll be accessed in homestead and vice versa. Though, most guys prefer using one major code directory.
folders:
- map: ~/Code
to: /home/vagrant/Code
- map: ~/MajorProject2 #other folder in your local machine
to: /home/vagrant/MajorProject2 #where folder will be accessible in homestead
Note: changes map in either location (homestead or local machine) will reflect either way.
In the sites section, you're correct about the map section. the to: property defines which homestead directory will be called when you visit your defined site e.g homestead.app. Just like the projects section, you can add other mappings for more sites
sites:
- map: homestead.app
to:/home/vagrant/Code/Laravel/public
- map: myothersite.app #additional site
to: /home/vagrant/Code/MyOtherSite/public #the public dir myothersite.app site calls
At the database section, any new line added will enable automatic database creation of the same name.
Hope this helps, but you should watch the laracast. It explains this in more detail