@Override
	public boolean processSSHSignatureCallbacks(String serverName, NameCallback nameCb,
			SSHSignatureCallback sshCb) {
		if (sshPrivateKey == null) {
			return false;
		}
		if (nameCb != null) {
			// presence of NameCallback implies user is allowed to specify name
			String userName = preferredName;
			if (StringUtils.isBlank(userName)) {
				userName = nameCb.getName();
				if (StringUtils.isBlank(userName)) {
					userName = nameCb.getDefaultName();
				}
				if (!StringUtils.isBlank(userName)) {
					userName = ClientUtil.getUserName();
				}
			}
			nameCb.setName(userName);
		}
		try {
			sshCb.sign(sshPrivateKey);
			return true;
		}
		catch (IOException e) {
			Msg.error(this, "Failed to authenticate with SSH private key", e);
		}
		return false;
	}
Install headless client authenticator for Ghidra Server and when http/https 
connections require authentication and have not specified user information.

@param username optional username to be used with a Ghidra Server which
allows username to be specified.  If null, {@link ClientUtil#getUserName()} 
will be used.
@param keystorePath optional PKI or SSH keystore path.  May also be specified
as resource path for SSH key.
@param allowPasswordPrompt if true the user may be prompted for passwords
via the console (stdin).  Please note that the Java console will echo 
the password entry to the terminal which may be undesirable.
@throws IOException if error occurs while opening specified keystorePath
Ghidra/Framework/FileSystem/src/main/java/ghidra/framework/client/HeadlessClientAuthenticator.java