配置 SSH 免密登录可以让你在不需要每次输入密码的情况下登录远程服务器。以下是详细步骤,适用于配置多个用户:
1. 生成 SSH 密钥对
首先,为你的用户生成一个 SSH 密钥对。如果你已经有了密钥对,可以跳过这一步。
在你的本地机器上,打开终端并运行以下命令:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
此命令会生成一个 4096 位的 RSA 密钥对。按提示操作,通常可以直接按回车使用默认路径 (~/.ssh/id_rsa
)。
2. 添加公钥到远程服务器
将生成的公钥添加到远程服务器的 authorized_keys
文件中。
使用 ssh-copy-id
命令可以方便地将公钥复制到远程服务器:
ssh-copy-id user@remote_host
其中,user
是远程服务器上的用户名,remote_host
是远程服务器的 IP 地址或域名。
你也可以手动复制公钥。首先,显示公钥的内容:
cat ~/.ssh/id_rsa.pub
然后在远程服务器上登录并将其添加到 ~/.ssh/authorized_keys
文件中:
ssh user@remote_host
mkdir -p ~/.ssh
echo "your_public_key" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
3. 配置多个用户的免密登录
重复上述步骤,为每个用户生成各自的 SSH 密钥对并将公钥添加到目标服务器的 authorized_keys
文件中。
你可以将多个公钥添加到同一个 authorized_keys
文件中,每行一个公钥。例如:
cat ~/.ssh/id_rsa_user1.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/id_rsa_user2.pub >> ~/.ssh/authorized_keys
4. 验证免密登录
现在,你可以从本地机器以免密方式登录到远程服务器:
ssh user@remote_host
如果成功登录而不需要输入密码,说明配置正确。
5. 配置 SSH 配置文件(可选)
为了简化登录过程,你可以配置 SSH 客户端的 config
文件。编辑 ~/.ssh/config
文件,添加如下内容:
Host remote_alias
HostName remote_host
User user
IdentityFile ~/.ssh/id_rsa
这样,你就可以通过简短的命令登录:
ssh remote_alias
通过上述步骤,你可以为多个用户配置 SSH 免密登录,简化登录过程。