         return Server(commandExecutor: DummyServer(), roles: [.app, .db, .web])
     }
     
-    public convenience init(ip: String, user: String, roles: [ServerRole]) {
-        self.init(commandExecutor: UserServer(ip: ip, user: user), roles: roles)
+    public convenience init(ip: String, user: String, roles: [ServerRole], authMethod: SSHAuthMethod?) {
+        self.init(commandExecutor: UserServer(ip: ip, user: user, authMethod: authMethod), roles: roles)
     }
     
     public convenience init(SSHHost: String, roles: [ServerRole]) {

    
    static var servers: [Server] = []
    
    public static func add(ip: String, user: String, roles: [ServerRole]) {
        servers.append(Server(ip: ip, user: user, roles: roles))
    }
    
    public static func add(SSHHost: String, roles: [ServerRole]) {


// MARK: - UserServer

public enum SSHAuthMethod {
    case key(String)
    // case password(String) TODO
}

extension Config {
    public static var SSHAuthMethod: SSHAuthMethod? = nil
}

public class UserServer: ServerCommandExecutor {
