WIP: ssh-agent support using jsch-agent-proxy

This commit is contained in:
2020-11-05 03:35:31 -06:00
parent 35d3de2d89
commit a84a307eb5
10 changed files with 73 additions and 12 deletions

View File

@@ -13,11 +13,19 @@ import java.util.logging.Level;
import net.monarchpass.piecannon.util.ServerFactory;
import com.jcraft.jsch.IdentityRepository;
import com.jcraft.jsch.agentproxy.Connector;
import com.jcraft.jsch.agentproxy.AgentProxyException;
import com.jcraft.jsch.agentproxy.RemoteIdentityRepository;
import com.jcraft.jsch.agentproxy.ConnectorFactory;
@Log
public class App {
public static void main (final String... args) throws Exception {
final File serversJson = getServersJson();
final PieCannon cannon = new PieCannon();
//cannon.getServerFactory().setIdentityRepository(createIdentityRepository());
final List<Server> servers = cannon.loadServersFrom(serversJson);
log.log(Level.INFO, "{0} servers loaded from {1}", new Object[] {
servers.size(), serversJson
@@ -53,4 +61,20 @@ public class App {
public static File getDataDirectory () {
return new File(BaseDirectory.get(BaseDirectory.XDG_DATA_HOME), "piecannon");
}
private static IdentityRepository createIdentityRepository () {
try {
final ConnectorFactory connectorFactory = ConnectorFactory.getDefault();
final Connector connector = connectorFactory.createConnector();
if (connector != null) {
return new RemoteIdentityRepository(connector);
}
}
catch (final AgentProxyException exception) {
log.log(Level.WARNING, "Failed to create agent identity repository", exception);
}
return null;
}
}