Passwordless SSH Login

Typically when you SSH into a machine, you’re required to provide a username & password.

We can bypass this, and just use SSH keys. This guide walks through how to configure SSH Keys from a Windows client, to a macOS Server.

Client: The device that you are working from, and will be using to access the remote machine.
Server: The device that you will be remoting into.

Client Configuration :

  1. Open Terminal, or Windows Powershell.

2. Connect to your server, using the command below.

type $env:USERPROFILE\.ssh\ | ssh user@ip-address "cat >> .ssh/authorized_keys"

3. Try SSH’ing into your server again, and you will notice you are no longer prompted for a password!


Automating Remote Desktop Gateway Certificate Renewal with Certify

Here is the problem – you have a server with the Remote Desktop Gateway role installed, but you don’t have a Remote Desktop Broker. None of the RemoteDesktop powershell commandlets work for you.

But you’re using Let’sEncrypt, and you are tired of manually exporting & installing PFX files every 90 days.

Here is the solution!

“This PC” Folders

Ever go from Windows 7 to Windows 10 and notice how the default “This PC” Explorer view is just so cluttered with Pictures, Videos, Documents, Etc? Also notice how these folders also show up on the left navigation bar?

Want to fix it? This is for you.

Go from this:

To this:

Please note that I have ONLY tested this on x64 Windows 10 1703-1809, Server 2016 & Server 2012 R2.

Source Code

WSUS – Updates available but clients are up to date

Recently I started playing around with WSUS and after getting everything setup, I was finding that clients were reporting into WSUS & WSUS was showing that updates were available, but when I would click “Check for Updates” in the Windows 10 client it would come back with “Your device is up to date!”

If you ever run into this issue, I have a solution. 2 things to know:

  1. If you are not using client side targeting in your GPO, your computer gets automatically added into the “Unassigned Computers” computer group.
  2. WSUS works on it’s own magic schedule. Even though you manually pressed “Check for updates”, unless it’s time for your computer to refresh in WSUS, it won’t pickup any group changes that were made.

In my case, this was the issue. I would domain join, computer would get put into the “Unassigned Computers” group which had no approved updates, I would then move the computer and press “Check for Updates” and it would take about 30-60 minutes for the computer to actually show there are updates.

If you read your Window Update Logs you will see an entry that goes something like this “Cookie still valid, continuing”. This essentially means that your computer is caching the setting it last used from WSUS, and is not seeing those updates. You need to force it to update by doing “wuauclt /resetauthorization /detectnow” This tells the computer to clear it’s cache, and re-detect updates from WSUS.

As soon as I did this, my client OS was able to pick up updates without a problem.

Alternatively – If you use the client side targeting GPO you won’t run into this problem, since your computer will be automatically added into the appropriate pool, and your initial sync will be accurate.

Battery Notification

After purchasing a UPS, I was surprised by the quality of the monitoring software that was available.

It was either too bloated, or looked so old that I didn’t want to install it. I still don’t understand why I need such a large program, to do such a basic task.

Due to this, I decided to create Battery Notification. It’s a simple open source program, less than 1mb in size, that (as of now) runs in the users session and monitors the computers power state. If it notices the power state change, it send you an email (which you can configure within the program) and writes to a local log file.

I wrote this mainly for myself, but while making it decided to ‘extend’ it a little and make it more universal.

The next goal is to create a Windows Service that can run in the background, but this will come in the future. Check back here, or on my github page for more.

License: GNU GPL v3
Source Code

RDP Settings

In the recent years I have been more and more reliant on using Remote Desktop for managing computers.

Windows helps RD users out by storing a history of 10 “Most Recently Used (MRU)” connections, and stores the username for any server that you have accessed in the past.

This is great, however, if you use Remote Desktop every day like I do, this list might get messy very fast.

I got frustrated in having to memorize where this data is stored in the Windows Registry, so I have made a small application that pulls this data from the registry, and allows you to edit it.

This application also allows you to edit the Port Number that RDP listens on (default is 3389).

I tested this on Windows 10 x64, but it should work on previous version of Windows.
If you notice any bugs, please contact me and let me know!

— Always be mindful of making changes in the registry. Always have a backup! I am not responsible if this program does not work as intended on an unsupported OS —

License: GNU GPL v3
Source Code

MD5 Checker

In this category of “Software” posts I will be documenting a few useful little Windows applications I have made that help make my life a bit easier, and teach me something about coding.

This particular application is a very basic MD5 hash generator. Simply select a file, and click “Check MD5.” It will output the hash into the box below, and there you go! Very small application, and you don’t have to memorize how to do this in CMD.

If an error is generated, the application will create an ‘errorLog.txt’ file in the same directory as the EXE.

If you find any bugs, please comment or email me, and let me know in the comments or by email.

License: GNU GPL v3
Source Code