INFO-设置 SSH 免密登录:实现安全高效的远程访问
更新时间: 2025-10-29 11:23:20
阅读 412
INFO-设置 SSH 免密登录:实现安全高效的远程访问
适用模块
linux
具体说明
设置 SSH 免密登录可以让你在不输入密码的情况下,通过 SSH 连接到远程服务器。这通常通过使用 SSH 密钥对来实现。
使用示例
设置 SSH 免密登录可以让你在不输入密码的情况下,通过 SSH 连接到远程服务器。这通常通过使用 SSH 密钥对来实现。以下是详细步骤:
1. 生成 SSH 密钥对
在客户端机器上(即你要从中连接到远程服务器的机器)生成 SSH 密钥对:
ssh-keygen -t rsa -b 4096
-t rsa: 指定密钥类型为 RSA。-b 4096: 指定密钥长度为 4096 位。- 在提示输入文件保存位置时,按回车键使用默认位置(通常是
~/.ssh/id_rsa)。 - 你可以选择设置一个密码短语来为私钥增加一层安全性,但这会要求在使用时输入该密码短语。
2. 将公钥复制到远程服务器
使用 ssh-copy-id 命令将公钥复制到远程服务器。假设远程服务器的用户名是 username,IP 地址或域名是 remote_host:
ssh-copy-id username@remote_host
- 这条命令会将你的公钥(通常是
~/.ssh/id_rsa.pub)复制到远程服务器的~/.ssh/authorized_keys文件中。 - 在运行这条命令时,你需要输入远程服务器的用户密码。
3. 手动复制公钥(如果没有 ssh-copy-id)
如果你不能使用 ssh-copy-id,你可以手动复制公钥:
查看并复制公钥内容:
cat ~/.ssh/id_rsa.pub登录到远程服务器:
ssh username@remote_host在远程服务器上,将公钥添加到
~/.ssh/authorized_keys文件中:mkdir -p ~/.ssh echo "your-public-key-content" >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys chmod 700 ~/.ssh
4. 验证免密登录
在完成上述步骤后,尝试从客户端机器连接到远程服务器以验证免密登录:
ssh username@remote_host
如果一切设置正确,你应该能够直接登录,而不需要输入密码。
5. 安全设置
- 确保
~/.ssh/authorized_keys文件的权限设置为600,~/.ssh目录的权限为700。 考虑在 SSH 配置文件(通常是
/etc/ssh/sshd_config)中禁用基于密码的登录,以增强安全性:PasswordAuthentication no修改后,重启 SSH 服务:
sudo systemctl restart sshd
作者:焦巍
文档反馈
以上内容对您是否有帮助?