SSH 公钥身份验证使用不对称加密算法来生成两个密钥文件 – 一个为“私钥”文件,一个为“公钥”文件。 私钥文件等效于密码,在所有情况下都应当保护它们。 如果有人获取了你的私钥,则他们可以像你一样登录到你有权登录的任何 SSH 服务器。 公钥放置在 SSH 服务器上,并且可以共享,不会危害私钥的安全。
备注:Linux与Windows免密时,不支持Sha256算法,所以生成密钥对的时候需要生成特定算法的密钥对拷贝到对应主机上的位置即可免密登录,如下是SSH与Windows做免密的操作。
1、生成密钥对
# 在主机上执行一下命令,一直回车即可生成
ssh-keygen -t ed25519
-t:指定算法(DSA、RSA、ECDSA、Ed25519,未指定时,默认采用RSA算法,Windows使用Ed25519算法)
2、Windows端操作
mkdir C:\ProgramData\ssh\
touch C:\ProgramData\ssh\administrators_authorized_keys
# 私钥通过步骤一操作会直接生成私钥和公钥,只需要把私钥内容复制把以下“私钥”替换为生成公钥的内容即可
echo "私钥" >> C:\ProgramData\ssh\administrators_authorized_keys
icacls.exe "C:\ProgramData\ssh\administrators_authorized_keys" /inheritance:r /grant "Administrators:F" /grant "SYSTEM:F"