static boolean processSSHSignatureCallback(Callback[] callbacks, String serverName,
			String defaultUserID) {
		NameCallback nameCb = null;
		SSHSignatureCallback sshCb = null;
		for (Callback callback : callbacks) {
			if (callback instanceof NameCallback) {
				nameCb = (NameCallback) callback;
				nameCb.setName(defaultUserID);
			}
			else if (callback instanceof SSHSignatureCallback) {
				sshCb = (SSHSignatureCallback) callback;
			}
		}
		if (sshCb == null || !clientAuthenticator.isSSHKeyAvailable()) {
			return false;
		}
		if (!clientAuthenticator.processSSHSignatureCallbacks(serverName, nameCb, sshCb)) {
			return false;
		}
		Msg.info(ClientUtil.class,
			"SSH Authenticating to " + serverName + " as user '" + defaultUserID + "'");
		return true;
	}
Prompt user and change password on server (not initiated by user).
@param parent dialog parent
@param handle server handle
@param serverInfo server information
@throws IOException if error occurs while updating password
Ghidra/Framework/FileSystem/src/main/java/ghidra/framework/client/ClientUtil.java