What about something like this?

``` java
if (!isSshable(computeService, node)) {                                                                     
    // try to override credentials in case AdminAccess has been executed on node                            
    String pkd = LocationConfigUtils.getPrivateKeyData(setup);                                              
    if (truth(pkd)) {                                                                                       
        LoginCredentials expectedCredentials = LoginCredentials.fromCredentials(new Credentials(user, pkd));
        //override credentials                                                                              
        node = NodeMetadataBuilder.fromNodeMetadata(node).credentials(expectedCredentials).build();         
        if (!isSshable(computeService, node)) {                                                             
            throw new IllegalStateException(String.format("The node %s is not ssh'able after reboot",       
                    node));                                                                                 
        }                                                                                                   
    } else {                                                                                                
        throw new IllegalStateException(String.format("The node %s is not ssh'able after reboot", node));   
    }                                                                                                       
}                                                                                                                                                                                     
```
where `isSshable` is:
``` java
    private boolean isSshable(final ComputeService computeService, final NodeMetadata node) {
        boolean isSshable = Repeater.create()
                .every(Duration.ONE_SECOND)
                .until(new Callable<Boolean>() {
                    public Boolean call() {
                        try {
                            return computeService.submitScriptOnNode(node.getId(), "date",
                                    RunScriptOptions.NONE).get().getExitStatus() == 0;
                        } catch (InterruptedException e) {
                            return false;
                        } catch (ExecutionException e) {
                            return false;
                        }
                    }
                })
                .limitTimeTo(Duration.minutes(15))
                .run();
        return isSshable;
    }
```