Created
January 8, 2022 16:35
-
-
Save bmatusiak/e027c4c8dfca26e23a88d1a8f8881d83 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var net = require('net'); | |
var fs = require('fs'); | |
var SSH_AUTH_SOCK_PATH_PREFIX = "/tmp/ssh-agent." | |
var SSH_AUTH_SOCK_PATH_POSTFIX = ".sock" | |
function createServer(socketName, callback, onConnect) { | |
var SSH_AUTH_SOCK_PATH = SSH_AUTH_SOCK_PATH_PREFIX + socketName + SSH_AUTH_SOCK_PATH_POSTFIX; | |
console.log('ssh-agent setup', SSH_AUTH_SOCK_PATH); | |
function routeEvent(stream) { | |
console.log('ssh-agent client connected'); | |
stream.on('end', function() { | |
console.log('ssh-agent client disconnected'); | |
}); | |
stream.on('error', function(err) { | |
//console.log("err", err); | |
// stream.write({ error: err.toString() }); | |
}); | |
stream | |
.on('data', function(data) { | |
console.log("------"); | |
console.log("ssh-agent client data", data.toString()); | |
console.log("ssh-agent client data", JSON.stringify(data.toString())); | |
}); | |
onConnect(stream); | |
} | |
var server = net.createServer(routeEvent); | |
fs.unlink(SSH_AUTH_SOCK_PATH, function() { | |
// TODO: permissions on socket? | |
server.listen(SSH_AUTH_SOCK_PATH, function() { | |
callback(null, SSH_AUTH_SOCK_PATH, server); | |
}); | |
}); | |
return server; | |
}; | |
function connectServer(socketPath, callback) { | |
function routeEvent(stream) { | |
console.log('ssh-agent server connected', socketPath); | |
stream.on('end', function() { | |
console.log('ssh-agent serverClient disconnected'); | |
}); | |
stream.on('error', function(err) { | |
console.log("err", err); | |
// stream.write({ error: err.toString() }); | |
}); | |
stream | |
.on('data', function(data) { | |
console.log("------"); | |
console.log("ssh-agent server data", data.toString()); | |
console.log("ssh-agent server data", JSON.stringify(data)); | |
}); | |
callback(stream); | |
} | |
routeEvent(net.connect(socketPath)); | |
}; | |
createServer("1337",function(err, SSH_AUTH_SOCK_PATH, server) { | |
//ready | |
},function(stream){ | |
connectServer(process.env.SSH_AUTH_SOCK,function($stream){ | |
stream.pipe($stream); | |
$stream.pipe(stream); | |
}) | |
//onConnect | |
}) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment