feat: scripts
This commit is contained in:
31
scripts/sshkeygen.js
Normal file
31
scripts/sshkeygen.js
Normal file
@@ -0,0 +1,31 @@
|
||||
#! /usr/bin/env runjs
|
||||
|
||||
var KeyPairGenerator = java.security.KeyPairGenerator;
|
||||
var Bytes = Packages.me.hatter.tools.commons.bytes.Bytes;
|
||||
var UnixArgsUtil = Packages.me.hatter.tools.commons.args.UnixArgsUtil;
|
||||
var SSHKeyGen = Packages.me.hatter.tools.commons.security.ssh.SSHKeyGen;
|
||||
|
||||
var main = () => {
|
||||
UnixArgsUtil.parseGlobalArgs($ARGS);
|
||||
var args = UnixArgsUtil.ARGS.args();
|
||||
if (UnixArgsUtil.ARGS.flags().containsAny('h', 'help')) {
|
||||
println('sshkeygen.js - Generate SSH keypair.')
|
||||
println();
|
||||
println('sshkeygen.js [--h[elp]] [-keyLength 4096] [-serverName server_name]');
|
||||
return;
|
||||
}
|
||||
|
||||
var kpg = KeyPairGenerator.getInstance("RSA");
|
||||
var keyLen = $$.asInt(UnixArgsUtil.ARGS.kvalue('keyLength') || '2048');
|
||||
if (keyLen < 1024) {
|
||||
println('Key length is less than 1024 bit: ' + keyLen);
|
||||
return;
|
||||
}
|
||||
kpg.initialize(keyLen);
|
||||
var kp = kpg.generateKeyPair();
|
||||
|
||||
println(SSHKeyGen.encodePublicKey(kp.getPublic(), UnixArgsUtil.ARGS.kvalue('serverName') || 'test@example.com'));
|
||||
println(Bytes.from(kp.getPrivate().getEncoded()).asPem('PRIVATE KEY'));
|
||||
};
|
||||
|
||||
main();
|
||||
Reference in New Issue
Block a user