我已经在我的 macOS 笔记本电脑和 24x7 运行的服务器上设置了 ssh-agent。为什么我需要在每次注销时杀死 ssh-agent?
我对 ssh-agent 的了解来源: https: //kb.iu.edu/d/aeww
eval `ssh-agent` # Start ssh-agent
echo $SSH_AGENT_PID # 20552 (Check ssh-agent is running)
ssh-add # Add id_rsa key to ssh-agent
kill $SSH_AGENT_PID # Kill ssh-agent on logout
Run Code Online (Sandbox Code Playgroud)
为什么需要最后一步?
ssh-agent
进程的方法我发现找到所有正在运行的 shh-agent 进程的最简单方法
ps ax | grep ssh-agent # outputs details of processes
Run Code Online (Sandbox Code Playgroud)
或者
pgrep ssh-agent # outputs list of PIDs only
Run Code Online (Sandbox Code Playgroud)
我发现终止所有正在运行的 ssh-agent 进程的最简单方法
pkill ssh-agent
Run Code Online (Sandbox Code Playgroud)
如果您不手动将其杀死,代理将驻留在您的系统中。
除了一般原则上不整洁之外,这还有两个潜在的问题:
ssh-agent
正如 Kusanalanda 指出的那样,这意味着您每次登录时都会生成另一个进程,即使它们的足迹可能可以忽略不计,这也会在进程表上变得有点草率。
更严重的是,每个进程的内存中都会有您解锁的私钥。如果攻击者要访问您的系统并利用内核内存管理或代码ssh-agent
本身中的(假设的,我目前不知道存在任何)错误来可能提取您的私钥。
当然,最后一种可能性很低,但终止该进程并完全消除风险同样容易。
安全总比后悔好。
归档时间: |
|
查看次数: |
4182 次 |
最近记录: |