SSH简单配置

一、在客户端生成 SSH 密钥对

在你的本地客户端(例如你的笔记本或开发机器)上:

1
ssh-keygen -t rsa -b 4096 -C "[email protected]"

说明:

  • -t rsa:生成 RSA 类型的密钥;
  • -b 4096:密钥长度,建议至少 4096;
  • -C:注释,通常填邮箱方便识别。

系统会提示你保存文件位置,默认是:

1
2
~/.ssh/id_rsa  (私钥)
~/.ssh/id_rsa.pub (公钥)

也可以自定义文件名,方便区分不同用途。


二、将公钥复制到服务器

假设你的服务器 IP 是 192.168.1.108,用户名是 ice345

方法一(推荐)使用 ssh-copy-id 自动复制:

[!Tip] 这个通常都会无法成功 copy 到服务器上

1
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

系统会提示输入服务器密码,输入一次即可自动把公钥复制到服务器的 ~/.ssh/authorized_keys 里,并设置好权限。

方法二:手动复制

如果没有 ssh-copy-id

  1. 查看公钥内容:
1
cat ~/.ssh/id_rsa.pub
  1. 登录服务器(使用密码):
1
ssh [email protected]
  1. 在服务器上创建 ~/.ssh/ 目录(如果还没有):
1
2
mkdir -p ~/.ssh
chmod 700 ~/.ssh
  1. 编辑 authorized_keys 文件:
1
nano ~/.ssh/authorized_keys

将你刚才 cat 出来的公钥粘贴进去,保存。

  1. 修改权限:
1
chmod 600 ~/.ssh/authorized_keys

三、测试免密登录

回到客户端,执行:

1
ssh [email protected]

如果一切顺利,不需要输入密码就能登录。


四、服务器配置 SSH 服务

在服务器上编辑 sshd 配置文件:

1
sudo nano /etc/ssh/sshd_config

重点配置项:

1
2
3
4
5
6
7
8
9
10
11
# 允许公钥认证(默认通常是yes)
PubkeyAuthentication yes

# 允许密码登录(如不想允许可以关闭)
PasswordAuthentication yes # 或 no

# 允许使用 authorized_keys 文件
AuthorizedKeysFile .ssh/authorized_keys

# 禁止 root 直接登录(安全建议)
PermitRootLogin no

修改后,重启 ssh 服务:

1
sudo systemctl restart sshd

五、额外注意事项

  • 如果你希望完全关闭密码登录,保证只允许密钥登录,可以把 PasswordAuthentication 改为 no
  • 确认目录权限正确:
目录/文件 权限
~/.ssh/ 700
~/.ssh/authorized_keys 600
  • 防火墙确认开放 22 端口。

六、完整快速版流程总结

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 1. 客户端生成密钥
ssh-keygen -t rsa -b 4096

# 2. 复制公钥到服务器
ssh-copy-id -i ~/.ssh/id_rsa.pub user@server_ip

# 3. 测试免密登录
ssh user@server_ip

# 4. 修改服务器 /etc/ssh/sshd_config(可选)
sudo nano /etc/ssh/sshd_config
# 确认或修改:
PubkeyAuthentication yes
PasswordAuthentication yes (或 no)

# 5. 重启 SSH 服务
sudo systemctl restart sshd

SSH简单配置
http://example.com/2025/06/13/SSH简单配置/
作者
JunBin Liang
发布于
2025年6月13日
许可协议