0.背景

家里的电脑一般都是买的移动电信这些运营商的帐号,用pppoe的方式上网的,这种情况的话我们是没有公网ip的,也就是说我们的电脑是位于一个局域网里面的,所以我们是无法直接远程连接到我们的电脑的。
为了实现远程连接到内网的电脑,我准备使用ssh反向连接来实现。

1. 环境介绍

主机A:内网电脑,这里我的系统是linux,用户名假设为test
主机B:有公网ip的设备,可以直接买一个vps,ip假设为10.x.x.x,用户名假设为UserB
主机C:远程设备,比如手机、办公室电脑等
注意:
上面所有的主机都要安装ssh服务

2. 配置远程登录用户

在主机A安装好ssh服务后,需要配置一个允许使用ssh远程登录的用户,这里为了安全起见,建议新建一个用户专门用来远程登录。

1. 创建用户

使用adduser命令可以自动创建一个新用户:

sudo adduser

根据提示输入用户登录密码以及相关信息即可:

如上图所示,创建了一个test用户,可以使用su test 测试一下用户能不能登入

2. 配置用户的sudo权限

为了安全起见,远程登录用户不应该有全部的sudo权限,这里可以通过配置sudo配置文件实现,默认位置在/etc/sudoers:

如上图所示,userA是我本地登录电脑的用户,test是我准备用来远程登录的用户,这里我的userA是有root的全部权限的(使用sudo命令),而我远程登录的用户只是想修改一些userA的文件,所以只配置了userA的权限,使用sudo命令的话需要加上-u userA才可以使用sudo:

大家根据自己远程连接的需要做修改即可,关于sudoer配置文件的详细解释可以参考如下连接:
https://www.doc88.com/p-731455814861.html?r=1

3. 配置ssh配置文件

linux下ssh的配置文件默认位置在 /etc/ssh/sshd_config,打开该文件搜索AllowUsers字段,如果没有就手动添加,如下图:
AllowUsers test,这样就可以使用test用户远程ssh登录啦

ssh反向连接

主机A配置好之后,使用ssh命令反向链接到主机B,命令如下:

ssh -fCNR  <port1>:localhost:<sshd服务port,默认为22> userB@10.x.x.x

执行成功后,会在userB监听port1端口,并把port1端口的消息转到UserA的ssh服务端口(默认为22)
下一步登入主机B,在主机B中输入如下命令:

ssh test@127.0.0.1 -p <port1>

即可以test用户的身份接入主机A啦

改进

通过上述步骤,我们可以在主机C通过远程接入到主机B,然后在主机B里使用ssh命令接入到主机A。不过这样有个问题,就是主机A的ssh反向链接如果异常中断了,需要手动输入密码才能重新建连,所以参考如下博客,在主机A上启动了一个进程监视脚步,如果ssh服务断了会使用密钥认证自动重连,不需要人亲自去主机A输密码:
https://www.cnblogs.com/x_wukong/p/5997872.html
还有一点,就是现在需要先连接主机B,再连接主机A,两步有点麻烦,这里可以在主机B上再建立一个ssh正向连接,监听一个port2端口:

ssh -fCNL  *:<port2>:localhost:<port1> userB@127.0.0.1

注意:这里的port1必须跟主机A反向连接监听的端口一致,port2可以随便选一个空闲端口

这样我们就可以直接在主机C上使用ssh命令登入主机A:

ssh test@10.x.x.x -p <port2>

注意,test是主机A的远程登陆用户名,10.x.x.x是主机B的公网ip

Have fun~

使用ssh远程连接家庭电脑相关推荐

  1. 如何在家通过ssh远程连接实验室电脑

    IP配置 如果用校内网 在实验室电脑在commond shell输入ifconfigor ip -a, 查看inet 后面的ip. 在家的电脑连接校园vpn, 通过局域网ip即可 如果是校外网 参考其 ...

  2. SSH远程连接访问树莓派【无公网IP做内网穿透】

     系列文章 树莓派搭建网站,并免费内网穿透发布上线到公网 树莓派搭建WordPress网站,并内网穿透发布上线无需公网IP服务器 为树莓派上的WordPress网站配置自己的域名,并内网穿透发布上线公 ...

  3. 介绍3种ssh远程连接的方式

    摘要:SSH(安全外壳协议 Secure Shell Protocol,简称SSH)是一种加密的网络传输协议,用于在网络中实现客户端和服务端的连接,典型的如我们在本地电脑通过 SSH连接远程服务器. ...

  4. 树莓派ssh远程连接

    树莓派 ssh 远程登陆 很早就买了个树莓派3B+,刚入手时候玩了一段,都是直接连显示器用.看过很多文章说可以通过ssh远程连接,从来没试过,周末兴趣来了尝试一下.实际操作下来,比预想的要麻烦一些,主 ...

  5. (一)ssh远程连接服务器GPU以及其他GPU使用途径——新手指南

    前言 最近在训练语义分割网络时决定使用GPU,本文记录新手在使用GPU时遇到的一些坑.想要在win10系统上配置GPU运行Pytorch代码可以考虑以下几种方式: 安装cuda,以及GPU版本的pyt ...

  6. VS code ssh 远程连接超算

    VS code ssh 远程连接服务器 VS Code 远程连接服务器(超算)详解 1. vscode安装 Remote-SSH插件 2. 填写服务器地址,选择config文件,填写登录密码 在第1步 ...

  7. 通过RD Client远程连接windows电脑(平板,手机等设备远程连接电脑)

    目录 前言 关于技术 1.RD Client 2.内网穿透 3.反向代理 操作步骤 1.服务端配置 2.客户端配置 3.用RD Client连接客户端 前言 这篇文章是有关于使用RD Client进行 ...

  8. 【vscode远程开发】使用SSH远程连接服务器 「内网穿透」

    文章目录 视频教程 1.安装OpenSSH 2.vscode配置ssh 3. 局域网测试连接远程服务器 4. 公网远程连接 4.1 ubuntu安装cpolar 4.2 创建隧道映射 4.3 测试公网 ...

  9. 【已解决】linux ssh 远程连接服务器,出现登陆慢、打字卡顿输入卡顿解决方案

    目录&索引 问题描述 解决方案 登陆慢 方法 1:修改配置文件 nsswitch_conf 方法 2:修改配置文件 sshd_config UseDNS 方法 3:修改配置文件 sshd_co ...

  10. ssh 远程连接方式总结

    SSH 概述 SSH(安全外壳协议 Secure Shell Protocol,简称SSH)是一种加密的网络传输协议,用于在网络中实现客户端和服务端的连接,典型的如我们在本地电脑通过 SSH连接远程服 ...

最新文章

  1. 不愧是北大疯人院!阿里数学竞赛决赛,入围人数超过清华和南大之和!
  2. 60行代码俄罗斯方块
  3. RecyclerView添加header与footer
  4. GitHub 上又一个面向韭菜玩家的开源项目...
  5. 【Linux】一步一步学Linux——env命令(201)
  6. 一封陌生土耳其网友的来信
  7. 使用事件委托降低重复的事件绑定,从而降低dom操作的对性能的消耗
  8. 程序员过年回家,如何向亲戚解释你的工作?
  9. 委托函数《重构》----处理概括关系
  10. centOs7 虚拟机设置文件共享
  11. Linux基础软件威胁疑云:从已知到“未知”
  12. 【reverse】buu-[WUSTCTF2020]level4——二叉树+IDA动态调试
  13. 新浪登陆按钮三种方式解析
  14. pomodoro命令行计时器
  15. 华为设备接口视图_华为设备的交换机接口类型介绍及配置
  16. 从原理到策略算法再到架构产品看推荐系统 | 附Spark实践案例
  17. 使用Spring Task实现定时任务
  18. spring中的Lifecycle
  19. python字典操作技巧_python的字典使用方法大全
  20. Extraction failed.

热门文章

  1. androidtv gms包_Android 9,8.1和8.0的GMS包更新 201812
  2. Aduino驱动SSD1306 OLED 显示图像
  3. 全网详细接口测试ApiPost详细教程(实战),吐血整理
  4. 关于伪分布式hadoop集群及HBase安装的一些记录(基于林子雨老师的大数据软件安装和基础编程)
  5. windows系统ping端口及利用telnet命令Ping 端口
  6. 文字转语音开源软件-espeak
  7. i2c驱动之at24c08(1)
  8. java docx4j 使用教程_使用Docx4j操作PPT指南系列(二)
  9. android开发笔记之xml矢量图片
  10. office各版本网盘免费下载