如何在 ZSH 和 PowerLevel10k 上自动加载多个 SSH 密钥

如何在 ZSH 和 PowerLevel10k 上自动加载多个 SSH 密钥

我正在尝试在启动计算机时自动加载我的 SSH 密钥(我正在运行 Archlinux)。目前我必须使用ssh-add [PATH]。我使用 ZSH、Oh my ZSH 和 PowerLevel10k。

这是我的.ssh文件夹:

.ssh
├── config
├── environment-z
├── known_hosts
├── known_hosts.old
├── v_ssh
├── v_ssh.pub
├── z_ssh
└── z_ssh.pub

我使用 ssh-agent 插件ohmyzsh,并使用 所要求的配置PowerLevel10k

[...]
plugins=(git ssh-agent gpg-agent zsh-autosuggestions zsh-syntax-highlighting fast-syntax-highlighting zsh-autocomplete colorize colored-man-pages)

zstyle :omz:plugins:ssh-agent quiet yes
zstyle :omz:plugins:ssh-agent lazy yes

source $ZSH/oh-my-zsh.sh
[...]

我还有包含.ssh/config以下内容的文件:

AddKeysToAgent yes

您能告诉我如何在启动时加载我的两个 SSH 密钥(z_ssh和)吗?v_ssh

答案1

以下是解决此问题的一个方法。

.ssh-add-keys.sh我在.ssh目录中创建了一个脚本

#!/usr/bin/env bash

cd ~/.ssh

eval $(ssh-agent) > /dev/null

# add all ssh keys
find ~/.ssh -name 'id_*' ! -name '*.pub' -exec ssh-add -q {} \;

并把这些行

# add ssh keys
source  ~/.ssh/ssh-add-keys.sh

在结束时.zshrc。注销 - 登录 ssh-add -l并且我的所有密钥都存在。

更新。如果你使用的是台式机,则添加以下行

Host *
  AddKeysToAgent yes

到您的~/.ssh/config文件中,并再次将您的密钥添加到 ssh-agent。现在它们应该保存在您的密码管理器中。

相关内容