• 周三. 6月 18th, 2025

autossh 远程连接电脑

autossh 远程连接电脑,本方法基于Ubuntu,另外还需要一台具有公网IP的电脑(服务器)。

主要是为了回家之后可以方便连接办公室的电脑处理一些紧急的事情,当然这个方法比如适用软件开发人员,其他的可以使用teamviewer。

autossh 方向搭建方法如下:

1、安装autossh,

sudo apt-get install autossh

2、autossh 帮助信息:

-M 指定监视端口,主要处理ssh连接异常退出,然后重连;

 

-f 后台运行;

 

-V 打印版本信息并退出。

3、根据以下文章的方法在服务器端和用户端成生两对密钥对:

ssh-keygen 生成密钥对

这里假设服务器端密钥对为 id_rsa_server, id_rsa_server.pub 以及客户端密钥对为id_rsa_user, id_rsa_user.pub。

4、参照以下文章配置对应的密钥对,实现同一系统使用多对密钥对:

ssh 添加config 配置不同host 使用不同密钥对

5、第三步生成的密钥对,其中以pub为后缀的是公钥,服务器和客户端要交换相应的公钥,交换方式如下:

将 id_rsa_user.pub 添加到服务器的 authorized_keys 中,authorized_keys的路径在对应用户目录的.ssh里, 可以用以下方法定位:

cd ~/.ssh

 

然后使用cat >> 追加内容到authorized_keys

 

cat id_rsa_user.pub >> authorized_keys

 

6、采用第5步同样的方法将 id_rsa_server.pub 追加到 服务器端的authorized_keys 。

以上第5、6步的目的是为了让服务器端和客户端 可以免密互相登录,这是反向代理的基础条件, 接下来是实现互相登录的指令。

 

7、以下的实验,服务器和客户端的用户名都以seven为例,网友们得改成自己的用户名。

先建立客户端使用autossh登录服务器的脚本如下(该脚本将会用于开机启动):

/bin/su -c ‘/usr/bin/autossh -M 5680 -NfR 12351:localhost:22 seven@www.atmcu.com -p22’ – seven

说明

a. 脚本中使用了su指令,原因是脚本是开机启动的,开机启动的用户是root 符合我们的要求,我们需要seven用户,不然会导致ssh登录使用root 的密钥对,所以这里使用su进行切换用户,指令末尾的 – seven就是指定用户(注意‘-’ 前后都有空格)

b. 现在说明下autossh的指令, -M 指定了5680为监视端口, -NfR 12351作为映射端口(服务器端的映射端口,即服务器会打一个12351的洞),直接映射到客户端的localhost:22端口; -p22这个是ssh登录端口(ssh登录还是用标准口22)

 

8、经过第7步之后,服务器端就可以使用以下方法登录客户端的电脑了:

ssh seven@127.0.0.1 -p12351

发表评论

您的电子邮箱地址不会被公开。