OpenSSH 提供了一种基于密钥对的身份验证机制,以实现安全的远程登录和其他网络服务(如SFTP)而无需每次都输入密码。这种机制使用一对非对称密钥,即公钥和私钥。
生成密钥对: 通过 ssh-keygen
命令在本地计算机上生成密钥对。你可以选择不同的加密算法,如 RSA、DSA、ECDSA 或 Ed25519 等。命令示例(在终端中执行):
bash
ssh-keygen -t rsa -b 4096
上述命令将创建一个4096位RSA密钥对,默认情况下,私钥存放在 ~/.ssh/id_rsa
,对应的公钥存放在 ~/.ssh/id_rsa.pub
。
配置公钥: 将生成的公钥文件(.pub
文件)的内容复制到远程服务器上的 ~/.ssh/authorized_keys
文件中。这样,当从该本地计算机尝试连接远程服务器时,远程服务器会检查与私钥匹配的公钥是否存在于 authorized_keys
文件中,如果匹配则允许无密码登录。