作者:E4b9a6, 创建:2023-10-08, 字数:1052, 已阅:558, 最后更新:2023-10-08
大部分公司都是采用SSH密钥进行服务器身份验证,这是相对安全的做法
但是经常使用SSH密钥连接到多个远程服务器上,区分清楚服务器对应的密钥的工作相对就麻烦许多了
ssh-agent
是用于管理SSH密钥的守护进程,它将在使用SSH连接到远程服务器上时自动匹配密钥,而无需每次都指定服务器密钥
ssh-agent
默认已经在Linux后台运行(Windows需要手动启动服务),并为SSH密钥提供代理服务
它会将解锁的密钥保存在内存中,并在需要时自动提供给 SSH 客户端进行身份验证,所以安全方面无需担心
实践一下,假设我们连接服务器方法如下
ssh chancel@1.1.1.1 -p 22 -i /path/to/id_rsa
每次都需要使用-i
来指定证书很麻烦,使用ssh-add
将密钥添加到ssh-agent
中
ssh-add /path/to/id_rsa
在添加成功后,仅需要使用如下连接方法
ssh chancel@1.1.1.1 -p 22
不仅仅是原生的ssh连接可用,大部分ssh客户端都支持ssh-agent
Windows也支持ssh-agent
服务,但需要手动开启,如下
PS C:\windows\system32> Set-Service -StartupType Automatic ssh-agent
PS C:\windows\system32> Start-Service ssh-agent
PS C:\windows\system32> Get-Service ssh-agent
Status Name DisplayName
------ ---- --------Running ssh-agent OpenSSH Authentication Agent
PS C:\windows\system32> (Get-Service ssh-agent).startType
Automatic
请注意,在重启ssh-agent
服务后会重新读取密钥文件,所以不可以添加后删除密钥文件,否则添加将会失效
参考文档