远程办公

关于远程办公,或者跨机器的一些实践说明。

远程办公

使用向日葵等这种远程软件直接远程过来办公。这是最简单的,也是非常容易入门的方式。各种环境都在,除了可能网络差一点。

vscode +ssh + frp + squid

  • 配置好frp,将远程的ssh端口、squid端口透传。
  • squid配置代理,使用sock5代理远程的环境,本机浏览器可以使用代理,直接访问到远程的服务。
  • 在本地不用保存任何代码,使用vscode直接通过ssh连接到远程的过去,编辑文件。
  • 使用浏览器,配置好代理,访问远程的http服务,进项的debug。

除此之外,vscode也可以换成远程的vim来直接操作。

ssh_config配置

相关资源https://www.bbsmax.com/A/D854LXKp5E/

cat ~/.ssh/config
# cp /usr/bin/bash ~/.ssh/config
# man ssh_config 5  # 查看帮助文档

可以使用的配置如下:

# 前3个为基本配置项
Host jobvm
  HostName 10.172.41.206
  User root
  Port 62222
  #执行本地命令
  #PermitLocalCommand yes
  #LocalCommand echo 111
  ControlMaster auto
  ControlPath /tmp/%r@%h:%p

# 不可达,使用 jobvm 作为跳板机
# 方式1
Host caikun
  HostName 10.172.41.111
  User root
  Port 22
  ProxyJump jobvm
# 方式2
Host caikun2
  HostName 10.172.41.111
  User root
  Port 22
  ProxyCommand ssh jobvm netcat -q 600 %h %p

# 本地端口转发
Host forwardtest
  HostName 10.172.41.206
  User root
  Port 62222
  LocalForward 58080 127.0.0.1:58080

登录

ssh jobvm

拷贝文件

scp *  jobvm:/root/ctypes_example-master/tutorial1

rsync -av test jobvm:/root/test

sftp jobvm

编辑远程文件

使用vim直接编辑远程的文件。

vim scp://root@example.com//home/centos/docker-compose.yml

使用vscode直接编辑远程文件

配置好vscode的ssh工具,可以直接编辑。

ssh端口代理

通过配置了~/.ssh/config文件,可以减轻使用代理功能的难度。参见如下:

远程端口转发

远程端口转发的意思是:跟ssh连接的方向相反。从ssh的服务端的那台机器主动建立tcp连接,访问ssh客户端所有环境的服务。如下:服务端访问localhost:5678,被代理到10.172.41.206:62222的端口。

# 远程端口转发  RemoteForward
Host dog
  HostName 1.15.47.218
  Port 62289
  User chaofml
  RemoteForward 5678 10.172.41.206:62222
# 端口说明,远程端口 5678   后面,为本地代理的端口。这样,在远程的端口,能访问到后面这个服务。


# 保活,则需要设置以下两个参数
# ServerAliveCountMax
# ServerAliveInterval
# 客户端命令
ssh dog

# 加上重试
for i in {1..100000};do ssh dog ;sleep 10;done

# 加上定时心跳
for i in {1..1000};do ssh dog "while true;do date;sleep 60;done";sleep 10;done

# 针对如上情况,如果不加心跳的话,那么,至少需要远程,定时的跟这个连接有数据交互,则连接不会断

# 远程(中转)服务器,貌似也不需要什么特别的设置。

本地端口转发

本地端口转发的意思是:跟ssh连接的方向相同。从运行ssh客户端的机器,主动建立tcp连接,访问ssh服务端的端口。

Host forwardtest
  HostName 10.172.41.206
  User root
  Port 62222
  LocalForward 58080 127.0.0.1:58080
ssh forwardtest

ssh执行命令

在脚本里面执行ssh,并执行命令。

这跟gp的命令,也有点像。1、执行1条命令。2、从标准输入中,获取到执行命令。

# 执行一条命令
ssh jobvm "
while true 
do 
date
sleep 1
done
"

# 从标准输入中输入
ssh -t jobvm <<EOL
while true 
do 
date
sleep 1
done
EOL