Using a flag to layer in functionality like this is not sustainable. This could be implemented much cleaner if you create a visitor like this:

```go
func verifyHostKeys(cfg *gossh.ClientConfig, known_hosts_filename string) error {
    cfg.StrictHostKeyChecking = newStoredKeyChecker(known_hosts_filename)
    return nil
}
```

Then simply wrap the core config with it:

```go
cfg := sshClientConfig("core")
if strict_host_key_checking {
    verifyHostKeys(cfg)
}
```