Start a new topic
Implemented

[Putty] Existing Saved Sessions Support

Hi Stefan,

Thank you for your great product.


RoyalTS already has the support of custom Putty executable. That is awesome because RoyalTS users can use latest versions of Putty as soon as possible.


RoyalTS generates custom Putty session (TEMP_SESSION_*) and runs Putty with it:

putty.exe -load "TEMP_SESSION_67613" -pw "lystor"


But the problem is that the RoyalTS does not support all options of Putty. Also Putty adds new options with new releases or changes existing.


Please add to RoyalTS the possibility to input the name of existing saved Putty session in properties of "Terminal Connection". RoyalTS should set it in Putty args with ssh hostname and username.


Example:

putty.exe -load SESSION_NAME -ssh localhost -l lystor -pw lystor


https://the.earth.li/~sgtatham/putty/0.72/htmldoc/Chapter3.html#using-cmdline


This will give users RoyalTS the ability to use all the functionality of Putty and existing Putty sessions with tons of tweaks.


Thank you

 

Regards,
Mykola


Hi,


thanks for the feedback. I've tweaked the UI a bit. With the next release you can do the following:

On the PuTTY connection main page, you can select an existing session (as you can right now).

You will still be able to enter/set a hostname and port.

If a hostname is set, it will be used otherwise it will take the hostname from the saved session.

If credentials are configured, they are also passed on.


This way you can setup a "template" connection in PuTTY and use these settings for your connections.


Regards,
Stefan


1 person likes this

Hi Stefan,


The issue persists in 5.1.10927 / 5.01.11001.0 / 5.01.11003.0 with both default and custom Putty executable.


%appdata%\code4ward was removed on each test.


Custom Putty profile was created with default settings.


The issue absent if type "SSH connection" is used instead of "Existing Putty Session".


STR:


1. Create new document

2. Add new terminal (putty)

- Display Name: test1

- Connection type: Existing Putty Session

- Putty Session: test1

- Computer Name: 10.10.21.21

- Credential: Specify username and password

- Username: root

- Password: root


Process:

"C:\Users\lystor\AppData\Local\Temp\Royal TS V5\Plugins\107df0a3-eab8-40ee-87f2-cc8a310f9269\RoyalTS_PuTTY64.exe" -load "test1" 10.10.21.21 -l root -pw "root"


OS: Windows 10


I'm not able to repro the issue on my side. Is it possible that your template session you are using is configured to use a custom window title? Royal TS needs to identify the window so that it can embed it correctly. Can you check the PuTTY setting under Windows -> Behavior


This is the configuration I have:

Can you check the PuTTY setting under Windows -> Behavior


I have the same settings as yours.


> Is it possible that your template session you are using is configured to use a custom window title? 


Nope


I have removed the branch Computer\HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\ using Registry Editor and created new session with all default settings using C:\Users\lystor\AppData\Local\Temp\Royal TS V5\Plugins\107df0a3-eab8-40ee-87f2-cc8a310f9269\RoyalTS_PuTTY64.exe.


P.S. On first connect to new host (when Putty displays "Putty Security Alert" dialog with new fingerprint and user should press "Yes / No" button) RoyalTS always connects to Putty process.


On second connect to the same host (when fingerprint is already saved into Computer\HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys) the issue occurs.

Still not able to reproduce it on my side. Can you record a video which shows the issue? Maybe I can see something in the window title or so which prevents Royal TS to identify the putty window on your machine. If you don't feel comfortable to post this video here, feel free to open a support ticket.

Hi Stefan,

Hmm

I am not able to reproduce the bug in VM with clean Windows 10 (version 1903).

It exists on my primary PC with Windows 10 Enterprise LTSC (version 1809).

Sorry, I can't create the video on that PC but I can send you any additional required information (process list for example, etc).

Hi Stefan,

Thank you for this feature.

It is amazing!

---

But I found a small bug in 5.1.10920:

RoyalTS sets HostName + UserName + PublicKeyFile keys in Windows Registry for "SSH Connection" type but it doesn't set PublicKeyFile for "Existing Putty Session" type so private key authentication doesn't work.

---

I think RoyalTS should not change the existing Putty profile and always pass hostname + username + password + private key in Putty command line (for example once username is saved in session, Putty will never ask for it but usernames and keys may differ between hosts):

# putty.exe -load SESSION -ssh localhost -l USERNAME -pw PASSWORD
# putty.exe -load SESSION -ssh localhost -l USERNAME -i PRIVATE_KEY.ppk 


Thank you

That's strange. What happens if you go back to the latest 5.0 release (https://www.royalapps.com/go/kb-ts-win-previousversions). Do you then still see the issue? Can you test this with the built in PUTTY and external PUTTY?

I'm trying to figure out if this is something unique to your machine or if this is related to the beta version.


Thanks,
Stefan

Thanks again for your input. I've changed the behavior and now use the CLI options to pass on this information to the session. The next beta release will have this on board.


Regards,
Stefan

v5.1.11003

 

The issue exists only in connection type "Existing Putty Session" with both versions of Putty (built-in 0.71 and external 0.72).


The session "profile1" were created with built-in Putty 0.71 and has default settings.

 

Connection type "SSH connection" doesn't have this bug (both versions of Putty works fine).

 

Command lines:    

"C:\Users\nikolay.ul\AppData\Local\Temp\Royal TS V5\Plugins\107df0a3-eab8-40ee-87f2-cc8a310f9269\RoyalTS_PuTTY64.exe"

-load "profile1" 10.10.21.21 -l root -i "D:\perforce\deploy\ansible\roles\openssh\key-private\files\id_rsa_root.ppk" 

   vs 

"C:\Users\nikolay.ul\AppData\Local\Temp\Royal TS V5\Plugins\107df0a3-eab8-40ee-87f2-cc8a310f9269\RoyalTS_PuTTY64.exe"

-load "TEMP_SESSION_45482" 10.10.21.21 -l root -i "D:\perforce\deploy\ansible\roles\openssh\key-private\files\id_rsa_root.ppk"

---

"C:\Program Files\Putty\PUTTY.EXE" 

-load "profile1" 10.10.21.21 -l root -i "D:\perforce\deploy\ansible\roles\openssh\key-private\files\id_rsa_root.ppk"

 vs   

"C:\Program Files\Putty\PUTTY.EXE" 

-load "TEMP_SESSION_69167" 10.10.21.21 -l root -i "D:\perforce\deploy\ansible\roles\openssh\key-private\files\id_rsa_root.ppk"

  

It seems like RoyalTS uses invalid regexp to search for Putty process if "Existing Putty Session" used.


EDIT: built-in Putty version is also 0.72, not 0.71

Can you post a screenshot of the session window?

I have attached screenshots and HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions\profile1

reg
(14.7 KB)
s3.png
(24.9 KB)
s2.png
(31.6 KB)
s1.png
(51.8 KB)

I imported your reg file, setup the connection the way you did and also tried with the 0.71, 0.72, 0.73 and it's working fine on 3 different machines.


I can see that the text " - PuTTY" (without the double-quotes) is not in the window. In the latest beta (build 11010) there's a Plugin Option to specify a custom window title match. The problem I see in your screenshot is that the window title is basically the username/prompt which may be different. You can set the Window Title in PuTTY (in the registry WinTitle). Maybe setting that to " - PuTTY" fixes the issue.


I really have no idea why the window title is different in your case.


https://i.postimg.cc/sD9kQ6Tc/s1.png
https://i.postimg.cc/Vkf3jqTc/s2.png
https://i.postimg.cc/kGPHDK8z/s3.png

 

Login or Signup to post a comment