この記事は中国語版をもとにした日本語版メモです。コマンド、コード、数式、画像リンクは原文の意味を壊さないように保持し、説明文と見出しを日本語向けに整理しています。
一、在客户端生成 SSH 密钥对#
在你的ローカル客户端(たとえば你的笔记本或开发机器)上:
ssh-keygen -t rsa -b 4096 -C "[email protected]"説明:
-t rsa:生成 RSA 类型的密钥;-b 4096:密钥长度,建议至少 4096;-C:注释,通常填邮箱方便识别。
システム会提示你保存ファイル位置,默认是:
~/.ssh/id_rsa (私钥)
~/.ssh/id_rsa.pub (公钥)也できます自定义ファイル名,方便区分不同用途。
二、将公钥复制到サーバー#
假设你的サーバー IP 是 192.168.1.108,用户名是 ice345:
方法一(推荐)使用 ssh-copy-id 自动复制:#
この通常都会无法成功 copy 到サーバー上
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]システム会提示输入サーバー密码,输入一次即可自动把公钥复制到サーバー的 ~/.ssh/authorized_keys 里,并设置好权限。
方法二:手动复制#
もし没有 ssh-copy-id:
- 確認公钥内容:
cat ~/.ssh/id_rsa.pub- 登录サーバー(使用密码):
- 在サーバー上作成
~/.ssh/ディレクトリ(もし还没有):
mkdir -p ~/.ssh
chmod 700 ~/.ssh- 编辑
authorized_keysファイル:
nano ~/.ssh/authorized_keys将你刚才 cat 出来的公钥粘贴进去,保存。
- 変更权限:
chmod 600 ~/.ssh/authorized_keys三、测试免密登录#
回到客户端,执行:
もし一切顺利,不必要输入密码就能登录。
四、サーバー設定 SSH 服务#
在サーバー上编辑 sshd 設定ファイル:
sudo nano /etc/ssh/sshd_config重点設定项:
# 允许公钥认证(默认通常是yes)
PubkeyAuthentication yes
# 允许密码登录(如不想允许可以关闭)
PasswordAuthentication yes # 或 no
# 允许使用 authorized_keys 文件
AuthorizedKeysFile .ssh/authorized_keys
# 禁止 root 直接登录(安全建议)
PermitRootLogin no変更后,重启 ssh 服务:
sudo systemctl restart sshd五、额外注意事项#
- もし你希望完全关闭密码登录,保证只允许密钥登录,できます把
PasswordAuthentication改为no。 - 确认ディレクトリ权限正确:
| ディレクトリ/ファイル | 权限 |
|---|---|
| ~/.ssh/ | 700 |
| ~/.ssh/authorized_keys | 600 |
- 防火墙确认开放
22端口。
六、完整快速版流程まとめ#
# 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
