I found the correct and detailed information on this issue on blog bookingtohosting.
Reason 1. The problem is that your "login" keychain is locked. So, every time Safari wants to access it (for whatever reason), it has to get a password to temporarily unlock it. But, if you keep "login" unlocked permanently, your problem will be solved. Here are steps to permanently unlock your keychain:
- Open Keychain Access (located in /Applications/Utilities)
- Go to the "Keychain Access" menu and select "Preferences"
- Click the "First Aid" tab
- Make sure the "Synchronize login keychain password" box is checked
- Close the Preferences window
- Go to the "Keychain Access" menu and select "Keychain First Aid"
7. Enter your username and password
8. Click the "Repair" button and click "Start".
- Now, the password for 'login' will be the same as the password for your account.
Go to the "File" menu and select "Unlock Keychain 'login'".
Type your account password and then press OK.
- You are done! Safari shouldn't ask you for a keychain password, and neither should any application, for that matter.
Reason 2. Your Keychain preference files may be corrupted. Locate this file
Drag that file from your Preferences folder to the Trash and restart your Mac.You need not to fear losing the data stored in your keychain when you move/Trash this file. The com.apple.keychainaccess.plist file doesn’t contain any of your keychain data.
If that doesn't help...
1) Quit Safari.
2) Open Keychain Access. (Applications/Utilities) Find the "Safari AutoFill" item. Delete it.
3) Relaunch Safari. Next time it asks for authorization, click "Always Allow".
If Safari is set to automatically fill in forms for you, you can turn off this feature and delete any information that Safari stored.
Open Safari if it is not already open.
Choose Safari > Preferences, and then click AutoFill.
Click the three check boxes next to the “Using Info from my Contacts Card,” “User Names and Passwords” and “Other Forms” options to uncheck them. This prevents Safari from using AutoFill when you visit websites that have forms for you to fill in.
Now next to “Other forms,” click Edit.
A list of websites where you normally fill in information such as your name and email address appears.
Select individual websites and click Remove, or click Remove All.