您的位置:

ssh-add详解

一、ssh-add简介

ssh-add是一种用于管理SSH私钥的工具。利用它,用户可以在当前会话中添加、删除、列出和验证SSH密钥。

ssh-add是OpenSSH软件套件的一部分,并且可以在Linux和其他Unix操作系统上使用。

二、ssh-add的使用

1、添加密钥

ssh-add ~/.ssh/id_rsa

在上述命令中,我们向ssh-add指示添加~/.ssh/id_rsa文件中存储的密钥。如果有需要,我们可以将其替换为其他SSH密钥文件名。

2、列出密钥

ssh-add -l

使用“ssh-add -l”命令列出在ssh-agent中缓存的公钥的SHA-256指纹。

3、删除密钥

ssh-add -d ~/.ssh/id_rsa

在上述命令中,我们向ssh-add指示删除~/.ssh/id_rsa文件中存储的密钥。如果需要,我们可以将其替换为其他SSH密钥文件名。

三、ssh-add的自动化

虽然可以使用ssh-add手动添加密钥,但为了便于管理,我们可以将其自动化。

1、在bash中使用ssh-add

可以向bash配置文件(例如~/.bashrc或~/.bash_profile)添加以下行,该行将在登录时自动将密钥添加到ssh-agent:

eval "$(ssh-agent -s)"   #启动代理
ssh-add ~/.ssh/id_rsa   #添加私钥到代理

2、使用keychain自动添加SSH密钥

keychain是一个开源的Shell脚本,它使用ssh-agent来管理SSH密钥。 它可以在登录时自动启动ssh-agent,并从默认目录中加载SSH密钥。

首先,需要安装keychain。在各个Linux发行版中,可以使用标准包管理器安装keychain。例如,在Ubuntu和Debian上,可以使用以下命令进行安装:

sudo apt-get update
sudo apt-get install keychain

完整代码如下:

# 在bashrc中添加以下行
eval $(keychain --eval --agents ssh id_rsa)

# 使用以下命令启动shell程序
/bin/bash --login

四、ssh-add的注意事项

1、警惕ssh-add -k命令

在向ssh-add添加私钥时,不应使用“ssh-add -k”选项。此选项将向ssh-agent启用锁定。

如果意外使用了锁定选项,可以使用以下命令将其解锁:

ssh-add -k

2、安全使用密钥

当使用ssh-add添加私钥时,应该注意密钥的安全性。应该将它们保持在只允许其拥有者访问的安全位置,并且应该使用高强度密码保护。
另外,不应在不受信任的计算机上使用SSH私钥。检查SSH主机密钥,以确认您正在连接到您信任的计算机。

五、总结

ssh-add是一种用于管理SSH私钥的工具,可以在Linux和其他Unix操作系统上使用。可以手动添加、删除、列出和验证SSH密钥。同时,我们也可以通过自动化实现ssh-add。