SSH用法
2021-03-10 本文已影响0人
袁先生的笔记
SSH正向代理
-
背景
serverA可以连serverB,serverB可以连serverC,但serverA无法连serverC -
解决办法
使用serverB作SSH正向代理,从而使serverA连接serverC,即serverA => serverB => serverC -
在serverA上执行
ssh -p 22 -o "ProxyCommand ssh -p 22 -W %h:%p user@serverB" user@serverC
SSH反向代理
-
背景
serverA可以连serverB,serverC也可以连serverB,但serverA无法连serverC -
解决办法
使用serverB作SSH反向代理,从而使serverA连接serverC,即serverA -> serverB <=> serverC -
在serverC上执行
建立到serverB 6001端口到本机22端口的SSH反向代理ssh -fCNR 6001:localhost:22 root@serverB
此时已可以在serverB本机,通过6001端口连接到serverC
-
在serverB上执行
使用7001端口转发6001端口,使其它主机可访问serverCssh -fCNL *:7001:localhost:6001 localhost
SSH服务并发调优
-
背景
服务器同时接到大量SSH认证时,有概率会断开其中一部分(例如jumpser中的网域网关、ansible中的SSH代理) -
解决办法
优化SSH服务配置vim /etc/ssh/sshd_config MaxStartups 200:30:1000 解释:当已连接但未认证的SSH数到200后,拒绝30%,到1000后拒绝全部
SSH持久化
cat <<EOF | tee ~/.ssh/config
Host *
Compression yes
ServerAliveInterval 60
ServerAliveCountMax 5
ControlMaster auto
ControlPath ~/.ssh/sockets/%r@%h-%p
ControlPersist 4h
EOF
mkdir ~/.ssh/sockets