ssh通过跳板机登录方法
1.密钥应该放在哪里
SSH 的密钥默认放在本地用户的 ~/.ssh/ 目录里,这是所有类 Unix 系统(Linux / macOS)的惯例位置。SSH 会自动从这个目录加载密钥,除非你明确指定 -i。
2.ssh密钥目录结构
你的本地机器(不是跳板机,不是目标机)通常是这样的:
~/.ssh/
├── id_rsa # 私钥(一定要保密)
├── id_rsa.pub # 公钥
├── id_jump # 跳板机专用私钥(可选)
├── id_jump.pub
├── id_target # 目标机专用私钥(可选)
├── id_target.pub
└── config # SSH 配置文件(可选但最推荐)
- 私钥永远放在本地,不会上传到跳板机或目标机。
- 上传到服务器的是
.pub公钥,写入~/.ssh/authorized_keys。
3.使用 -i 指定密钥时
例如:
1 | ssh -i ~/.ssh/id_rsa \ |
上面命令中的 -i ~/.ssh/id_rsa 指向本地路径,不在跳板机上,也不在目标主机上。
SSH 链路中的两段认证情况如下:
Local(含私钥) → Jump(验证公钥)
Jump → Target(验证公钥)
跳板机和目标机都只需要公钥,不需要私钥。
4.多把密钥配置SSH config
Host jump
HostName jump.example.com
User jump_user
IdentityFile ~/.ssh/id_jump
Host target
HostName 10.0.0.33
User target_user
IdentityFile ~/.ssh/id_target
ProxyJump jump
LocalForward 8080 10.0.0.33:8080
之后执行:
ssh target
密钥加载、跳板机、端口转发全部自动完成。