mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2026-02-06 02:51:32 +01:00
fix(ssh-agent): add support for any OpenSSH key
The ssh-agent plugin now adds all files in `~/.ssh/` that start with `-----BEGIN OPENSSH PRIVATE KEY-----`, regardless of their name. This fixes an issue where the plugin was only adding keys with hardcoded names. This change ensures that any valid OpenSSH private key will be added to the ssh-agent, improving compatibility and flexibility for users with custom key names.
This commit is contained in:
parent
61bacd95b2
commit
2e746384bf
1 changed files with 10 additions and 7 deletions
|
|
@ -39,13 +39,16 @@ function _add_identities() {
|
|||
return
|
||||
fi
|
||||
|
||||
# add default keys if no identities were set up via zstyle
|
||||
# this is to mimic the call to ssh-add with no identities
|
||||
if [[ ${#identities} -eq 0 ]]; then
|
||||
# key list found on `ssh-add` man page's DESCRIPTION section
|
||||
for id in id_rsa id_dsa id_ecdsa id_ed25519 id_ed25519_sk identity; do
|
||||
# check if file exists
|
||||
[[ -f "$HOME/.ssh/$id" ]] && identities+=($id)
|
||||
# If no keys specified in zstyle, add default keys.
|
||||
# Mimics calling ssh-add with no arguments.
|
||||
if [[ ${#identities[@]} -eq 0 ]]; then
|
||||
# Iterate over files in .ssh folder.
|
||||
for file in "$HOME/.ssh"/*; do
|
||||
# Check if file is a regular file and starts with "-----BEGIN OPENSSH PRIVATE KEY-----".
|
||||
if [[ -f "$file" && $(head -n 1 "$file") =~ ^-----BEGIN\ OPENSSH\ PRIVATE\ KEY----- ]]; then
|
||||
# Add filename (without path) to identities array.
|
||||
identities+=("${file##*/}")
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue