YAML Configuration file
So far it's looking quite good, but I have a few comments:

Which file to load?

private static final File file = new File("config.yaml");


In my opinion it would be better to pass the File to load in to the constructor of this Config class, for flexibility. Now perhaps you only need to load a specific file, but in the future you might want to support multiple files. Who says that you always want to load config.yaml? Sometimes you might want to try different configurations, and instead of making backups of your config file and renaming files like crazy, you could instead load config-withsomespecials.yaml

private final File file;
public Config(File file) {
    this.file = file;
}


Speaking of flexibility, your setDefaults class works fine for your server, but you could make your Config class an abstract class, setDefaults as an abstract method and use a ServerConfig as a subclass in which you override this method:

// In your `Config` class:
protected abstract void setDefaults();

// In your `ServerConfig` class:
@Override
protected void setDefaults() {
    config.clear();

    config.put(SERVER_NAME,     "Server");
    config.put(MOTD,            "Welcome to the server!");
    config.put(SERVER_PORT,     21020);
}


These are only suggestions, if you don't want to make it that flexible, that's up to you.

&lt;personal-opinion&gt; As for the choice of using YAML.... it isn't exactly my favorite format. Let me guess, you're a Minecraft / Bukkit player? The Minecraft / Bukkit world is about the only place I've come across this format. If you have the ability to choose, I would personally recommend using Jackson, which is primarily used for JSON, although it has support for XML and even support for YAML. Jackson is wildly used, very flexible, and I think it is more well-documented than Snakeyaml.&lt;/personal-opinion&gt;