一台 server 的 authorized_keys 配置了很多很多 public key, 一个客户端去连接的时候,服务端怎么知道这个客户端的私钥对应哪个 public key 呢?
ssh-keygen 生成的 id_rsa 文件,可以导出对应的公钥:
1
ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub2
- ssh-keygen 生成的 id_rsa 文件,查看对应公钥的指纹信息:
1
ssh-keygen -l -f ~/.ssh/id_rsa
客服端在发送消息给服务端时,可以通过本地自己的私钥,生成出对应的公钥指纹信息,然后发送给服务端,服务端通过这个指纹信息,遍历 authorized_keys 文件,查找有没有相同指纹的 public key 的信息。