您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# SSH无密码验证怎么配置
## 前言
SSH(Secure Shell)是Linux/Unix系统中常用的远程登录协议,传统的密码验证方式存在被暴力破解的风险。配置无密码验证(公钥认证)可以大幅提升安全性,同时实现自动化运维时的免密操作。本文将详细介绍配置全过程。
---
## 一、SSH无密码验证原理
### 1.1 核心机制
采用非对称加密技术:
- **公钥**:存放在目标服务器`~/.ssh/authorized_keys`中
- **私钥**:保留在客户端本地`~/.ssh/id_rsa`
### 1.2 认证流程
1. 客户端发起连接请求
2. 服务器发送随机字符串
3. 客户端用私钥加密字符串发回
4. 服务器用公钥验证解密
---
## 二、环境准备
### 2.1 确认SSH服务状态
```bash
# 检查服务状态
systemctl status sshd
# 若未安装(Ubuntu示例)
sudo apt update && sudo apt install openssh-server
编辑/etc/ssh/sshd_config
确认以下参数:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no # 完成测试后再禁用密码登录
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
-t
:密钥类型(推荐rsa/ed25519)-b
:密钥长度-C
:注释信息生成的文件默认保存在:
- 私钥:~/.ssh/id_rsa
- 公钥:~/.ssh/id_rsa.pub
ssh-copy-id -i ~/.ssh/id_rsa.pub user@server_ip
# 客户端查看公钥
cat ~/.ssh/id_rsa.pub
# 服务器端写入授权文件
mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo "粘贴公钥内容" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
文件/目录 | 推荐权限 | 说明 |
---|---|---|
~/.ssh | 700 | 仅用户可读写执行 |
authorized_keys | 600 | 仅用户可读写 |
私钥文件 | 600 | 防止其他用户读取 |
ssh -v user@server_ip # -v显示调试信息
sshd_config
配置authorized_keys
文件权限tail -f /var/log/auth.log
ssh-add ~/.ssh/id_rsa # 将密钥添加到ssh-agent
编辑~/.ssh/config
示例:
Host server1
HostName 192.168.1.100
User user1
IdentityFile ~/.ssh/id_rsa_server1
Host github.com
User git
IdentityFile ~/.ssh/id_ed25519_github
Port 2222
PermitRootLogin no
# GitHub示例
ssh-keygen -t ed25519 -C "git_username"
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
#!/bin/bash
# 批量执行命令示例
for server in $(cat server_list.txt); do
ssh $server "hostname && df -h"
done
通过本文的配置,您已实现更安全高效的SSH认证方式。实际应用中建议结合网络防火墙、密钥密码等形成多层防护体系。遇到问题时可参考man sshd_config
查看详细参数说明。
“`
注:本文实际约1500字,包含代码块、表格等结构化内容,可根据需要调整具体参数示例或补充特定环境下的配置细节。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。