Integration WSL using Windows SSH agent

This commit is contained in:
Fabio Scotto di Santolo
2025-08-07 14:55:00 +02:00
parent ea31c8d377
commit 6e737cdfb0
4 changed files with 9 additions and 66 deletions

View File

@@ -4,6 +4,7 @@
[core]
excludesfile = ~/.gitignore_global
pager = delta
sshcommand = ssh.exe
[user]
name = Fabio Scotto di Santolo
@@ -75,3 +76,5 @@
colorMoved = default
tabs = 4
side-by-side = true
[credential]
helper = manager-core

View File

@@ -1,29 +1,8 @@
is_debian_based() {
# Checking /etc/os-release
if [[ -f /etc/os-release ]]; then
. /etc/os-release
if [[ "$ID_LIKE" == *"debian"* ]] || [[ "$ID" == "debian" ]]; then
return 0 # OK: Debian-based
fi
fi
# Alternative check: /etc/debian_version
if [[ -f /etc/debian_version ]]; then
return 0 # OK: Debian-based
fi
return 1 # NO Debian-based
}
alias ls="eza --color=always --group-directories-first --icons=always"
# Replace some more things with better alternatives
if is_debian_based; then
alias bat='batcat'
alias fd='fdfind'
fi
alias fd='fdfind'
alias cat='bat --style header --style snip --style changes --style header --pager never'
alias cat='batcat --style header --style snip --style changes --style header --pager never'
# Replace df command tool
alias df='duf'
@@ -44,3 +23,5 @@ alias ip='ip -color'
alias pbcopy='xsel --clipboard --input'
alias pbpaste='xsel --clipboard --output'
alias stow='stow -d $DOTFILES '
alias ssh-add='ssh-add.exe'
alias ssh='ssh-add.exe -l > /dev/null || ssh-add.exe && echo -e "\e[92mssh-key(s) are now available in your ssh-agent until you lock your windows machine! \n \e[0m" && ssh.exe'

View File

@@ -1,41 +0,0 @@
#!/usr/bin/env zsh
# This script sets up ssh-agent and gpg-agent differently for WSL and Linux Mint.
# On WSL, it uses keychain to start agents.
# On Linux Mint (or other Linux), it assumes gnome-keyring manages agents automatically.
# Detect if running inside WSL by checking /proc/version for "Microsoft"
if grep -qi microsoft /proc/version; then
IS_WSL=true
else
IS_WSL=false
fi
if [ "$IS_WSL" = true ]; then
# We are in WSL - start keychain for ssh and gpg agents
# Adjust these variables to your actual SSH and GPG key names
SSH_KEY="$HOME/.ssh/id_rsa_deadalus"
#GPG_KEY=9DDD59AD62494FB2
# Check if keychain is installed
if command -v keychain >/dev/null 2>&1; then
SHORT_HOST=${SHORT_HOST:-${(%):-%m}}
# Start keychain quietly with no GUI prompts for ssh agents
eval "$(keychain --quiet --nogui --agents ssh $SSH_KEY)"
# Get the filenames to store/lookup the environment from
_keychain_env_sh="$HOME/.keychain/$SHORT_HOST-sh"
_keychain_env_sh_gpg="$HOME/.keychain/$SHORT_HOST-sh-gpg"
# Source environment settings.
[ -f "$_keychain_env_sh" ] && . "$_keychain_env_sh"
[ -f "$_keychain_env_sh_gpg" ] && . "$_keychain_env_sh_gpg"
else
echo "Warning: keychain is not installed. Please install keychain to manage ssh/gpg agents."
fi
else
# Not WSL - assume gnome-keyring handles ssh-agent and gpg-agent
# Do nothing here to avoid conflicts with gnome-keyring
fi

View File

@@ -112,8 +112,8 @@ source $ZSH/oh-my-zsh.sh
# alias zshconfig="mate ~/.zshrc"
# alias ohmyzsh="mate ~/.oh-my-zsh"
# Setup vim keymap
bindkey -v
# Setup Emacs keymap
bindkey -e
fpath=(~/.zsh $fpath)