配置 ssh 密钥实现免密码登录的答案是:1. 在本地使用 ssh-keygen 生成 rsa 密钥对,私钥保存在本地,公钥用于上传;2. 通过 ssh-copy-id、手动复制或 scp 方法将公钥添加到服务器的 ~/.ssh/authorized_keys 文件中;3. 确保服务器上 ~/.ssh 目录权限为 700,authorized_keys 文件权限为 600;4. 测试 ssh 登录是否无需密码;5. 可选配置 ~/.ssh/config 设置别名简化登录。整个过程完成后即可实现安全高效的免密登录,且必须确保每一步权限设置正确才能成功。

配置 SSH 密钥实现免密码登录,是管理 Linux 服务器时非常实用的基础技能。它不仅提升了登录效率,还增强了安全性(相比密码登录更难被暴力破解)。下面是完整的设置流程,适用于大多数 Linux、macOS 系统,Windows 用户可使用 WSL 或 Git Bash 操作。
在本地机器(你的电脑)上生成公钥和私钥。
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
-t rsa -b 4096
-C
执行后会提示:
Enter file in which to save the key (/home/yourname/.ssh/id_rsa): Enter passphrase (empty for no passphrase):
生成后会在
~/.ssh/
id_rsa
id_rsa.pub
有三种常用方法,任选其一。
ssh-copy-id username@server_ip
username
server_ip
例如:
ssh-copy-id root@192.168.1.100
系统会提示输入密码,验证后自动将公钥追加到服务器的
~/.ssh/authorized_keys
⚠️ 如果提示 ssh-copy-id: command not found,macOS 用户可通过 brew install ssh-copy-id 安装,Linux 用户用包管理器安装(如 sudo apt install ssh-copy-id)。
cat ~/.ssh/id_rsa.pub
复制输出的整段内容(以
ssh-rsa AAAAB3Nza...
登录服务器:
ssh username@server_ip
.ssh
mkdir -p ~/.ssh
authorized_keys
echo "你复制的公钥内容" >> ~/.ssh/authorized_keys
chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
scp ~/.ssh/id_rsa.pub username@server_ip:/tmp/id_rsa.pub
然后登录服务器,执行:
mkdir -p ~/.ssh cat /tmp/id_rsa.pub >> ~/.ssh/authorized_keys chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys rm /tmp/id_rsa.pub
退出服务器后,在本地尝试重新登录:
ssh username@server_ip
如果无需输入密码直接登录成功,说明配置成功。
如果仍需密码,请检查:
- 服务器上
文件权限是否为 600~/.ssh/authorized_keys登录后复制 目录权限是否为 700.ssh登录后复制- SELinux 或防火墙是否阻止(较少见)
- SSH 服务是否允许公钥认证(查看
中/etc/ssh/sshd_config登录后复制)PubkeyAuthentication yes登录后复制
编辑本地的
~/.ssh/config
Host myserver
HostName 192.168.1.100
User root
IdentityFile ~/.ssh/id_rsa之后只需输入:
ssh myserver
即可快速登录。
基本上就这些。整个过程不复杂,关键点是公钥正确写入服务器的 authorized_keys 并设置好权限。一旦配置完成,你就可以告别重复输入密码的烦恼了。
以上就是如何配置ssh密钥 免密码登录设置流程的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号