2025-01-10 22:29:51 +08:00
|
|
|
|
# ssh 隧道转发
|
2025-05-18 09:11:15 +08:00
|
|
|
|
- 本地转发
|
2025-01-10 22:29:51 +08:00
|
|
|
|
+ 本地端口转发到远端服务器
|
2025-05-18 09:11:15 +08:00
|
|
|
|
+ `ssh -L local_port:remote_host:remote_port user@ssh_server`
|
2025-01-10 22:29:51 +08:00
|
|
|
|
|
2025-05-18 09:11:15 +08:00
|
|
|
|
- 远程转发
|
2025-01-10 22:29:51 +08:00
|
|
|
|
+ 远程转发到本地
|
2025-05-18 09:11:15 +08:00
|
|
|
|
+ `ssh -R remote_host:local_host:local_port user@ssh_server`
|
2025-01-10 22:29:51 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-10-27 09:23:50 +00:00
|
|
|
|
|
2025-01-10 22:29:51 +08:00
|
|
|
|
SSH免密登录是一种使用SSH协议进行身份验证的方法,它允许用户在不输入密码的情况下登录远程服务器。以下是实现SSH免密登录的基本步骤:
|
2024-10-27 09:23:50 +00:00
|
|
|
|
1. **生成密钥对**:
|
|
|
|
|
- 使用`ssh-keygen`命令生成一对公钥和私钥。例如:
|
|
|
|
|
ssh-keygen -t rsa -b 4096
|
|
|
|
|
2. **复制公钥到远程服务器**:
|
|
|
|
|
- 使用`ssh-copy-id`命令将公钥复制到远程服务器。例如:
|
2025-05-18 09:11:15 +08:00
|
|
|
|
`ssh-copy-id user@remote_host`
|
2024-10-27 09:23:50 +00:00
|
|
|
|
- 这将自动将你的公钥添加到远程服务器的`~/.ssh/authorized_keys`文件中。
|
|
|
|
|
3. **配置SSH客户端**:
|
|
|
|
|
- 确保你的SSH客户端配置文件`~/.ssh/config`正确设置,以便使用私钥进行身份验证。例如:
|
|
|
|
|
4. **禁用密码登录**:
|
2025-05-18 09:11:15 +08:00
|
|
|
|
- `/etc/ssh/sshd_config`
|
2024-10-27 09:23:50 +00:00
|
|
|
|
- 设置PasswordAuthentication no
|
|
|
|
|
5. **测试免密登录**:
|
|
|
|
|
6. **注意事项**:
|
|
|
|
|
- 确保远程服务器的SSH服务配置允许密钥认证。通常在`/etc/ssh/sshd_config`文件中设置。
|
|
|
|
|
- 确保本地和远程的SSH配置文件没有错误,并且权限设置正确。
|
|
|
|
|
|
2025-05-18 09:11:15 +08:00
|
|
|
|
遇到任何问题,可以查看SSH的日志文件或使用`-v`参数进行调试
|
|
|
|
|
- `ssh -v user@remote_host`
|
2025-01-10 22:29:51 +08:00
|
|
|
|
|
|
|
|
|
# ssh: config 文件
|
2025-05-18 09:11:15 +08:00
|
|
|
|
```config
|
2025-01-10 22:29:51 +08:00
|
|
|
|
Host iaalai
|
|
|
|
|
HostName api.iaalai.cn #连接地址
|
|
|
|
|
User e0x1a #连接用户名
|
|
|
|
|
Port 20022 #连接端口
|
|
|
|
|
IdentityFile ~/.ssh/id_rsa #密钥地址
|
|
|
|
|
IdentitiesOnly yes #仅使用密钥
|
|
|
|
|
ServerAliveInterval 60 #每60s发一个空包保持连接
|
|
|
|
|
ServerAliveCountMax 3 #3次未响应断开
|
2025-05-18 09:11:15 +08:00
|
|
|
|
```
|