Hi there!
First, I just wanted to say great job on the new features you've recently added to SuperPuTTY. As a network engineer, I’ve been using this tool for almost a 10 years, and it’s been my go-to for managing servers and network devices. It’s awesome to see the project still getting support after all these years. Thank you!
I also wanted to share that your work inspired me to start learning Visual Studio so I can help contribute to the project myself. I’ve been experimenting with a new feature idea in my fork, and I’d love to collaborate or get feedback from you on how to implement it properly. This is both a learning opportunity for me and hopefully a way for me contribute some meaningful quality of life improvements to SuperPuTTY.
I’ve started drafting a new feature in my fork: https://github.com/waukeerules/superputty. The goal is to enable users to create their own "Environment Variables" where keys can be added to their saved sessions. For "Login username:", I want to enable users to define the following example: {vaultuser}@root@{domain}@192.168.0.1@{psmpserver}#policy or {user}@{domain}. On session launch, SuperPuTTY would replace these placeholders with the actual values defined in the user’s Environment Variables settings. On the surface, this might seem like a silly idea as you can simply define your username in PuTTY or just type in your username of course. At the moment, that is more or less what I do, but with a Python script that I require each user to run to generate their Sessions.xml file.
There's three benefits I want to cover on why this is a good idea:
- The first benefit; I want to implement this feature is so I can work towards having a shared Sessions.xml file on a network drive. That way other network engineers on my team can share the same sessions file while having their own unique values or customizations sourced from Environment Variables (or PuTTY).
- The second benefit is this will enable you to pass your custom username login strings that tools like CyberArk PSM require for SSH proxy. When it comes to using CyberArk PSM, it's a bit frustrating to define these settings in PuTTY as the target IP Address or FQDN will change from device to device.
- The third benefit is it will be a bit easier for folks to add new sessions for themselves or others - all you need to do is find an existing session, duplicate it, leave the existing keys in place, but change the session name and target ip/host/fqdn.
Then it's just a matter of accessing the shared Sessions.xml file and defining your local environment variables rather than maintaining your own database or running a custom script to generate it. Of course that means the keys folks define must be exactly the same, but the values can change from individual to individual.
P.S: I did use Grok/ChatGPT to learn C# and generate some of the code. I fully acknowledge that my implementation may not follow best practices or have the right approach.
Hi there!
First, I just wanted to say great job on the new features you've recently added to SuperPuTTY. As a network engineer, I’ve been using this tool for almost a 10 years, and it’s been my go-to for managing servers and network devices. It’s awesome to see the project still getting support after all these years. Thank you!
I also wanted to share that your work inspired me to start learning Visual Studio so I can help contribute to the project myself. I’ve been experimenting with a new feature idea in my fork, and I’d love to collaborate or get feedback from you on how to implement it properly. This is both a learning opportunity for me and hopefully a way for me contribute some meaningful quality of life improvements to SuperPuTTY.
I’ve started drafting a new feature in my fork: https://github.com/waukeerules/superputty. The goal is to enable users to create their own "Environment Variables" where keys can be added to their saved sessions. For "Login username:", I want to enable users to define the following example:
{vaultuser}@root@{domain}@192.168.0.1@{psmpserver}#policyor{user}@{domain}. On session launch, SuperPuTTY would replace these placeholders with the actual values defined in the user’s Environment Variables settings. On the surface, this might seem like a silly idea as you can simply define your username in PuTTY or just type in your username of course. At the moment, that is more or less what I do, but with a Python script that I require each user to run to generate their Sessions.xml file.There's three benefits I want to cover on why this is a good idea:
Then it's just a matter of accessing the shared Sessions.xml file and defining your local environment variables rather than maintaining your own database or running a custom script to generate it. Of course that means the keys folks define must be exactly the same, but the values can change from individual to individual.
P.S: I did use Grok/ChatGPT to learn C# and generate some of the code. I fully acknowledge that my implementation may not follow best practices or have the right approach.