banner
NEWS LETTER

ssh配置仅密钥登录

Scroll down

SSH 配置仅密钥登录

1. 本地生成密钥对

1
2
3
# 推荐 ED25519 算法(安全高效) 
ssh-keygen -t ed25519 -C "备注信息"
# 兼容旧系统备选(RSA 4096 位) ssh-keygen -t rsa -b 4096 -C "备注信息"

生成文件:~/.ssh/id_ed25519(私钥,权限 600,严禁泄露)、~/.ssh/id_ed25519.pub(公钥,需上传服务器)

2. 公钥上传到服务器

自动上传(推荐)

1
ssh-copy-id -i ~/.ssh/id_ed25519.pub -p 端口 用户名@服务器IP 

手动上传(备用)

1
2
3
4
5
6
# 服务器端执行 
mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo "本地公钥内容" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
chown -R 用户名:用户名 ~/.ssh

3. 服务器禁用密码登录

编辑 SSH 配置文件

1
sudo vi /etc/ssh/sshd_config 

关键配置项

1
2
3
4
5
6
7
8
PubkeyAuthentication yes 
# 启用公钥认证(必须)
PasswordAuthentication no
# 禁用密码认证(核心)
ChallengeResponseAuthentication no
# 禁用挑战响应认证
PermitRootLogin without-password
# 可选:root 仅允许密钥登录(更安全)

生效配置

1
2
3
4
5
6
sudo sshd -t 
# 校验配置语法(无报错则正确)
sudo systemctl restart sshd
# CentOS/RHEL
# sudo systemctl restart ssh
# Ubuntu/Debian

4. 验证密码登录是否禁用

1
2
# 强制尝试密码登录,验证是否被拒绝 
ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no -p 端口 用户名@服务器IP
  • 正常结果:提示 Permission denied (publickey,gssapi-keyex,gssapi-with-mic),无 password 选项

5. 简化 SSH 登录(客户端配置)

编辑客户端 SSH 配置文件

1
2
vi ~/.ssh/config 
# 权限需设为 600

配置示例

1
2
3
4
5
6
Host 自定义别名 # 如 myserver 
HostName 服务器IP
User 用户名
Port 端口
IdentityFile ~/.ssh/id_ed25519
ServerAliveInterval 60 # 保持连接,避免断连

快捷登录

1
2
ssh 自定义别名 
# 无需输入 IP、端口、用户名
其他文章
目录导航 置顶
  1. 1. SSH 配置仅密钥登录
    1. 1.0.1. 1. 本地生成密钥对
    2. 1.0.2. 2. 公钥上传到服务器
      1. 1.0.2.1. 自动上传(推荐)
      2. 1.0.2.2. 手动上传(备用)
    3. 1.0.3. 3. 服务器禁用密码登录
      1. 1.0.3.1. 编辑 SSH 配置文件
      2. 1.0.3.2. 关键配置项
      3. 1.0.3.3. 生效配置
    4. 1.0.4. 4. 验证密码登录是否禁用
    5. 1.0.5. 5. 简化 SSH 登录(客户端配置)
      1. 1.0.5.1. 编辑客户端 SSH 配置文件
      2. 1.0.5.2. 配置示例
      3. 1.0.5.3. 快捷登录
请输入关键词进行搜索