https://github.com/ilpianista/winaskpass
ssh-add helper for WSL that stores passphrases in Windows Credential Manager (wincred)
https://github.com/ilpianista/winaskpass
askpass ssh wincred wsl
Last synced: 6 months ago
JSON representation
ssh-add helper for WSL that stores passphrases in Windows Credential Manager (wincred)
- Host: GitHub
- URL: https://github.com/ilpianista/winaskpass
- Owner: ilpianista
- License: mit
- Created: 2025-12-30T13:53:10.000Z (6 months ago)
- Default Branch: master
- Last Pushed: 2026-01-02T14:01:43.000Z (6 months ago)
- Last Synced: 2026-01-13T22:06:31.929Z (6 months ago)
- Topics: askpass, ssh, wincred, wsl
- Language: Rust
- Homepage:
- Size: 83 KB
- Stars: 3
- Watchers: 0
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
[](https://crates.io/crates/winaskpass)
# winaskpass
A Rust CLI tool that serves as an ssh-askpass helper for WSL (Windows Subsystem for Linux). It securely stores SSH key passphrases in the Windows Credential Manager so you don't have to re-enter them repeatedly.

## Installation and building
### WSL
By default this project uses PowerShell with embedded C# to call Windows APIs (credui.dll, advapi32.dll) since this runs in WSL.
`cargo install` can be used to install in `~/.cargo/bin/`:
```sh
cargo install winaskpass
```
To build from the repository, use:
```sh
git clone https://github.com/ilpianista/winaskpass.git
cd winaskpass
cargo build --release --locked
```
### Windows
Download latest `.exe` file and put in your `%PATH`.
When built natively uses Windows APIs directly, build with the `native` feature and the `x86_64-pc-windows-msvc` target:
```sh
git clone https://github.com/ilpianista/winaskpass.git
cd winaskpass
cargo build --release --no-default-features --features native --target x86_64-pc-windows-msvc
```
## Setup
To make `ssh` use `winaskpass` set `SSH_ASKPASS=/path/to/winaskpass` or `SSH_ASKPASS=/path/to/winaskpass.exe` depending on your choice.
`SSH_ASKPASS_REQUIRE=prefer` might be required as well.
Then invoke `ssh-add