This document describes how to set up Windows 10 for cross-platform development (Go, NodeJS, etc) with Windows Subsystem for Linux (WSL).
Resources
I know that gpg and pgp are different and read about them, but can I even do what I'm trying to do using gpg to encrypt a file with a key that was apparently generated with pgp? (in Windows) cmd gnupg pgp. Follow edited Sep 10 '19 at 12:44. Asked Sep 10 '19 at 12:35. Gpg -passphrase-file gpg (e.g.
Most of the information here is collected from
WSL Setup
- Download Brave beta and Firefox browsers, make either default.
- Install 1Password for Windows, sign into personal and company accounts.
- Add 1Password X extension in Brave and Firefox
- Enable WSL and install latest version of Ubuntu from Microsoft Store
- Create C:home directory, move user's home folder there and update
/etc/passwd
with the new location
Default User
Ubuntu will create a default user on the initial run. It can also be done manually:
- Create new user in Ubuntu:
useradd -Um roustem
- Make sure that user is added to
sudoers
- Change default user (using PowerShell Admin):
Install Ubuntu Apps
Go
NodeJS
Yarn
GPG and Git
Debugging gpg signing:
Google Cloud SDK
Install Windows Apps
- Visual Studio Code
- Git
- Go
- WSLtty
- Gpg4win
- Ditto
Configure git
After installing Go, press Win-S
, type PATH
and change the GOPATH
to C:homeroustemgo
. This will make sure that GOPATH is shared with WSL and Go can pickup all libraries and vendored code. Sky go laptop to tv no sound.
Solving Git interoperability with WSL
Also, make sure that local .git/config
file has correct settings as well.
Note: you might have to do this without --global
in the repo as well.
MinGW (optional)
Install MinGW to get access to make and other command line tools. Update PATH to Include
Improving WSL Performance
Based on Speeding up WSL I/O .., turn off Windows Defender protection for some folders and processes:
Exclude folder: %USERPROFILE%AppDataLocalPackagesCanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc
Exclude processes:
- git
- node
- npm
- dpkg
- go
Securing Docker
Configure Ditto
Set keyboard shortcut to Alt-V
Exclude 1Password
binaryAdd image clipboard type
Miscellaneous Windows Tips
Keyboard Shortcuts:
Cmd-Shift-S
– take a screenshot and save it to clipboardWin-.
– show emoji panel (see Advanced Keyboard settings to control if emoji panel closes automatically)Configure system and user path:Win-S
, type 'PATH'Configure taskbar:Download eetools usb devices driver.
Cmd-S
, type 'system icons'
As much as I’d like to see a world where PKI is used to secure digital resources, the status quo is a world often secured by passwords. Passwords are hard to remember, and easy to lose. We should use complex, hard-to-guess passwords. We should Hydrotechnik driver download for windows 10. use separate passwords for every site. We should keep passwords to ourselves instead of sharing accounts with other users. All of these things add up to more than most minds should be taxed with.
The good news is: password managers can help!
Password Managers
A password manager is an application that stores a collection of passwords in an encrypted database. Typically, a single master password is used to protect this encrypted database. This means that you only need to remember one long and complex password instead of hundreds.
The two password managers I hear about most often are LastPass, a free browser-based tool, and 1Password, a paid desktop and mobile application, but there are many alternatives. Others include KeePassX and Bruce Schneier’s Password Safe.
A DIY Password Manager
Since learning more about how to use GnuPG for encryption, I started to work on a design for a new password manager that would store passwords in text files encrypted with gpg and stored in a git repository. I’ve found gpg to be a good tool for encrypting text and git to be a good way to both track changes and keep data in sync across multiple systems.
As these things go, I didn’t get very far before finding out that someone has already made almost exactly the tool I was working on!
Pass
It’s called “pass“, and it comes with a descriptive (if presumptuous) tagline: “the standard unix password manager.”
Pass stores passwords as encrypted files in a directory hierarchy (under ~/.password-store
by default) that can optionally be kept in git.
Getting Started
1. Installation
Mac OS X, using Homebrew:
Debian-based Linux distros:
RedHat-based Linux distros:
2. Create the Store
3. Store a Password
4. Retrieve a Password
1password Pgp Key
I have a GUI pin entry program that prompts me for the PIN to my smartcard before the password is decrypted and displayed.
It’s also worth noting that with the bash or zsh completion scripts installed, you can tab-complete the paths to your passwords, i.e. pass work/p<TAB>
.
You can also copy a password directly to your clipboard, by using the -c
flag:
This is usually what I want to do when retrieving a password.
Other Features
pass has a number of other features that are quite useful, like the ability to generate new passwords, and the ability to store “multiline passwords” which could be used for other types of sensitive information.
My Wishlist
1password Google 2fa
Shared Passwords
I know, I know! Don’t share passwords! But, the current reality is that sometimes you don’t have an alternative. The one thing that pass
doesn’t seem to do (yet?) is allow a password store to be shared between multiple users. I would love to see pass (or something like it) extended to support multiple recipients on the encrypted files in its store. Bonus points for a feature reminding you to change passwords after removing recipients!
Multiple Stores
Going hand-in-hand with the above, if pass allowed for managing portions of your password store as separate Git repos, you could have a private “home” repo and a shared “work” repo.
1password Google Play
Rotation Reminders
A feature that kept track of when you last changed a password would be helpful, not only for regular good password hygiene, but especially when combined with news of data breaches.
1password Google Chrome
UPDATE: On Twitter, Pierre Chapuis kindly informed me that since v1.5, pass has allowed sub-directories within the store to have different recipient lists, including multiple recipients. Look in the manpage at the -p
flag of pass init
for more details.