I recently ran into this problem as well, and I think I finally figured out what the problem is. In your home folders and on your iDisk, there is a hidden directory called
Library/Keychains/.syncinfo, and inside this directory, there is a file called
login.keychain.syncinfo.plist. This file needs to be the same one everywhere. If the files somehow get out of sync, the typical methods of resetting the sync data don't seem to touch these files on your systems and on your iDisk, and as long as they don't match, the access-restricted problem will happen somewhere.
The following procedure is what I just tried, and it seemed to finally get keychain syncing working again for me. I decided to start from scratch and designated one of my computers to be the master system and made sure it had all my current data.
1. First, I unregistered every system from MobileMe, opting to delete all the sync data from my iDisk when prompted. This eliminated the sync data from the iDisk.
2. Next, on each system, I turned off syncing in the MobileMe preference pane and then reset the sync history via iSync's preferences. This cleared the local sync databases.
3. On each system except the master system, I went into Keychain Access's preferences, reset the keychain, and then rebooted. (Logging out and back in is probably enough, but Apple said to reboot in its tech note.)
4. On the master system, I went into Terminal and issued the commands (both are one line each):
*rm ~/Library/Keychains/.syncinfo/login.keychain.syncinfo.plist*
*/System/Library/Frameworks/SecurityFoundation.framework/Versions/A/Resources/kc Sync.app/Contents/MacOS/kcSync -reset*
The first command gets rid of the local copy of the file, and the second one gets rid of the one on the iDisk. When you run the second command, it should tell you that it successfully removed the file. If it doesn't, make sure you're logged into MobileMe in the preference pane. The local and iDisk copy should get automatically recreated after the second command, so they'll be in sync and reflect the name of the master computer.
At this point, the sync data were gone from all my systems except the master system, and the keychain was empty on every system except the master. The data were also gone completely from the iDisk. So now I was ready to start the synchronizing process.
5. I went back to the master system, registered it with MobileMe, and synchronized the keychain (and bookmarks and whatnot). I found that just enabling synchronization didn't cause the system to register itself with MobileMe; I had to explicitly do so via the "Advanced..." button.
6. Then I replaced the file ~/Library/Keychain/.syncinfo/login.keychain.syncinfo.plist on my other systems with a copy from my master system. (You can use Finder's "Go to Folder..." to access the invisible folder
~/Library/Keychain/.syncinfo if you don't know Unix commands.)
7. After I replaced the file on a system, I logged into MobileMe, registered the system, and then synchronized. (If you do everything correctly, it should ask you for the password of your master system when it first tries to sync your keychain. If it asks you for the password of the system you're on or of a different system, you messed up.)