Skip to content

Instantly share code, notes, and snippets.

@bmatusiak
Created January 8, 2022 16:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bmatusiak/e027c4c8dfca26e23a88d1a8f8881d83 to your computer and use it in GitHub Desktop.
Save bmatusiak/e027c4c8dfca26e23a88d1a8f8881d83 to your computer and use it in GitHub Desktop.
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