From b2c12f469f63e6244b2e25de984f68e9b96781dc Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Fri, 6 Feb 2015 16:12:58 +0100 Subject: sshd config --- .../taskmanager/tasks/BrandingGenerator.java | 2 +- .../taskmanager/tasks/SshdConfigGenerator.java | 51 ++++++++++++---------- 2 files changed, 28 insertions(+), 25 deletions(-) diff --git a/src/main/java/org/openslx/taskmanager/tasks/BrandingGenerator.java b/src/main/java/org/openslx/taskmanager/tasks/BrandingGenerator.java index 7192eba..5cd1a50 100644 --- a/src/main/java/org/openslx/taskmanager/tasks/BrandingGenerator.java +++ b/src/main/java/org/openslx/taskmanager/tasks/BrandingGenerator.java @@ -105,7 +105,7 @@ public class BrandingGenerator extends AbstractTask status.error = "Can't write to " + this.tarFile + ": " + e.toString(); return false; } - Archive.tarAddFile( tar, "/etc/branding.svg", new File( this.svgFile ), 0644 ); + Archive.tarAddFile( tar, "/etc/branding.svg", f, 0644 ); if ( ppmFile != null ) Archive.tarAddFile( tar, "/etc/branding.ppm", ppmFile, 0644 ); Util.multiClose( tar ); diff --git a/src/main/java/org/openslx/taskmanager/tasks/SshdConfigGenerator.java b/src/main/java/org/openslx/taskmanager/tasks/SshdConfigGenerator.java index 09c32f7..826c09d 100644 --- a/src/main/java/org/openslx/taskmanager/tasks/SshdConfigGenerator.java +++ b/src/main/java/org/openslx/taskmanager/tasks/SshdConfigGenerator.java @@ -35,7 +35,7 @@ public class SshdConfigGenerator extends AbstractTask status.error = "Invalid value for allowPasswordLogin: " + allowPasswordLogin; if ( listenPort > 65535 || listenPort < 1 ) status.error = "Invalid value for listenPort: " + listenPort; - if ( publicKey != null && !publicKey.isEmpty() && !publicKey.matches( "^[a-z0-9\\-]+ [A-Za-z0-9=/\\+]+ " ) ) + if ( publicKey != null && !publicKey.isEmpty() && !publicKey.matches( "^[a-z0-9\\-]+ [A-Za-z0-9=/\\+]+ .*" ) ) status.error = "Invalid public key: '" + publicKey + "'"; return status.error == null; } @@ -44,29 +44,33 @@ public class SshdConfigGenerator extends AbstractTask protected boolean execute() { TarArchiveOutputStream outArchive = null; - // Prepare sshd config - String template; try { - template = FileUtils.readFileToString( new File( "./data/sshd_config.template" ), StandardCharsets.UTF_8 ); - } catch ( IOException e ) { - status.error = e.toString(); - return false; - } - template.replace( "%PORT%", Integer.toString( this.listenPort ) ); - template.replace( "%PASSWORDLOGIN%", allowPasswordLogin ); - try { - outArchive = Archive.createTarArchive( this.filename ); - } catch ( IOException e ) { - status.error = "Could not create archive at " + this.filename; - return false; - } - boolean ok = Archive.tarCreateFileFromString( outArchive, "/etc/ssh/sshd_config", template, 0644 ); - if ( publicKey != null && !publicKey.isEmpty() ) - ok |= Archive.tarCreateFileFromString( outArchive, "/root/.ssh/authorized_keys", publicKey, 0600 ); - ok |= Archive.tarCreateSymlink( outArchive, "../sshd.service", "/etc/systemd/system/network.target.wants/sshd.service" ); - if ( !ok ) { - status.error = "Could not create module archive contents"; - return false; + // Prepare sshd config + String template; + try { + template = FileUtils.readFileToString( new File( "./data/sshd_config.template" ), StandardCharsets.UTF_8 ); + } catch ( IOException e ) { + status.error = e.toString(); + return false; + } + template = template.replace( "%PORT%", Integer.toString( this.listenPort ) ); + template = template.replace( "%PASSWORDLOGIN%", allowPasswordLogin ); + try { + outArchive = Archive.createTarArchive( this.filename ); + } catch ( IOException e ) { + status.error = "Could not create archive at " + this.filename; + return false; + } + boolean ok = Archive.tarCreateFileFromString( outArchive, "/etc/ssh/sshd_config", template, 0644 ); + if ( publicKey != null && !publicKey.isEmpty() ) + ok |= Archive.tarCreateFileFromString( outArchive, "/root/.ssh/authorized_keys.d/sshd_conf_mod.pub", publicKey, 0600 ); + ok |= Archive.tarCreateSymlink( outArchive, "../sshd.service", "/etc/systemd/system/network.target.wants/sshd.service" ); + if ( !ok ) { + status.error = "Could not create module archive contents"; + return false; + } + } finally { + Util.multiClose( outArchive ); } return true; } @@ -74,7 +78,6 @@ public class SshdConfigGenerator extends AbstractTask /** * Output - contains additional status data of this task */ - @SuppressWarnings( "unused" ) private static class Output { protected String error = null; -- cgit v1.2.3-55-g7522