2021-11-14 15:52:46 +08:00

62 lines
1.5 KiB
Markdown

---
title: "ssh 命令"
date: 2019-10-29T21:10:48+08:00
lastmod: 2019-10-29T21:10:48+08:00
keywords: []
tags: ["ssh", "隧道", "转发"]
categories: ["shell"]
---
## sshd 常规设置
- 禁用 root 远程登陆
```
PermitRootLogin no
```
- 只允许私钥登陆
```
PubkeyAuthentication yes
PasswordAuthentication no
```
- 开启端口转发功能
```
AllowTcpForwarding yes
GatewayPorts yes
X11Forwarding yes
TCPKeepAlive yes
ClientAliveInterval 60
ClientAliveCountMax 3
```
## ssh 参数
- -f 后台运行
- -N 仅作端口转发,不执行任何命令
- -g 绑定端口到全部网卡
## 本地定向转发
- ssh-client 不可达 remote-host, ssh-server 可达 remote-host, ssh 隧道映射 ssh-client 指定端口到 remote-host 指定端口
- 在 ssh-client 执行
```bash
ssh -f -N -g \
-L [<ssh-client-ip>:]<port on ssh-client>:<remote-host>:<port on remote-host> \
username@<ssh-server>
```
## 远程定向转发
- ssh-client 可达 remote-host, ssh-server 不可达 remote-host, ssh 隧道映射 ssh-server 指定端口到 remote-host 指定端口
- 在 ssh-client 执行
```bash
ssh -f -N -g \
-R [<ssh-server-ip>:]<port on ssh-server>:<remote-host>:<port on remote-host> \
username@<ssh-server>
```
## 动态转发
- SOCKS5 代理
- 在 ssh-client 执行
```bash
ssh -f -N -g \
-D <port on ssh-client> \
username@<ssh-server>
```