使用ssh远程连接家庭电脑
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远程连接家庭电脑相关推荐
- 如何在家通过ssh远程连接实验室电脑
IP配置 如果用校内网 在实验室电脑在commond shell输入ifconfigor ip -a, 查看inet 后面的ip. 在家的电脑连接校园vpn, 通过局域网ip即可 如果是校外网 参考其 ...
- SSH远程连接访问树莓派【无公网IP做内网穿透】
系列文章 树莓派搭建网站,并免费内网穿透发布上线到公网 树莓派搭建WordPress网站,并内网穿透发布上线无需公网IP服务器 为树莓派上的WordPress网站配置自己的域名,并内网穿透发布上线公 ...
- 介绍3种ssh远程连接的方式
摘要:SSH(安全外壳协议 Secure Shell Protocol,简称SSH)是一种加密的网络传输协议,用于在网络中实现客户端和服务端的连接,典型的如我们在本地电脑通过 SSH连接远程服务器. ...
- 树莓派ssh远程连接
树莓派 ssh 远程登陆 很早就买了个树莓派3B+,刚入手时候玩了一段,都是直接连显示器用.看过很多文章说可以通过ssh远程连接,从来没试过,周末兴趣来了尝试一下.实际操作下来,比预想的要麻烦一些,主 ...
- (一)ssh远程连接服务器GPU以及其他GPU使用途径——新手指南
前言 最近在训练语义分割网络时决定使用GPU,本文记录新手在使用GPU时遇到的一些坑.想要在win10系统上配置GPU运行Pytorch代码可以考虑以下几种方式: 安装cuda,以及GPU版本的pyt ...
- VS code ssh 远程连接超算
VS code ssh 远程连接服务器 VS Code 远程连接服务器(超算)详解 1. vscode安装 Remote-SSH插件 2. 填写服务器地址,选择config文件,填写登录密码 在第1步 ...
- 通过RD Client远程连接windows电脑(平板,手机等设备远程连接电脑)
目录 前言 关于技术 1.RD Client 2.内网穿透 3.反向代理 操作步骤 1.服务端配置 2.客户端配置 3.用RD Client连接客户端 前言 这篇文章是有关于使用RD Client进行 ...
- 【vscode远程开发】使用SSH远程连接服务器 「内网穿透」
文章目录 视频教程 1.安装OpenSSH 2.vscode配置ssh 3. 局域网测试连接远程服务器 4. 公网远程连接 4.1 ubuntu安装cpolar 4.2 创建隧道映射 4.3 测试公网 ...
- 【已解决】linux ssh 远程连接服务器,出现登陆慢、打字卡顿输入卡顿解决方案
目录&索引 问题描述 解决方案 登陆慢 方法 1:修改配置文件 nsswitch_conf 方法 2:修改配置文件 sshd_config UseDNS 方法 3:修改配置文件 sshd_co ...
- ssh 远程连接方式总结
SSH 概述 SSH(安全外壳协议 Secure Shell Protocol,简称SSH)是一种加密的网络传输协议,用于在网络中实现客户端和服务端的连接,典型的如我们在本地电脑通过 SSH连接远程服 ...
最新文章
- 不愧是北大疯人院!阿里数学竞赛决赛,入围人数超过清华和南大之和!
- 60行代码俄罗斯方块
- RecyclerView添加header与footer
- GitHub 上又一个面向韭菜玩家的开源项目...
- 【Linux】一步一步学Linux——env命令(201)
- 一封陌生土耳其网友的来信
- 使用事件委托降低重复的事件绑定,从而降低dom操作的对性能的消耗
- 程序员过年回家,如何向亲戚解释你的工作?
- 委托函数《重构》----处理概括关系
- centOs7 虚拟机设置文件共享
- Linux基础软件威胁疑云:从已知到“未知”
- 【reverse】buu-[WUSTCTF2020]level4——二叉树+IDA动态调试
- 新浪登陆按钮三种方式解析
- pomodoro命令行计时器
- 华为设备接口视图_华为设备的交换机接口类型介绍及配置
- 从原理到策略算法再到架构产品看推荐系统 | 附Spark实践案例
- 使用Spring Task实现定时任务
- spring中的Lifecycle
- python字典操作技巧_python的字典使用方法大全
- Extraction failed.
热门文章
- androidtv gms包_Android 9,8.1和8.0的GMS包更新 201812
- Aduino驱动SSD1306 OLED 显示图像
- 全网详细接口测试ApiPost详细教程(实战),吐血整理
- 关于伪分布式hadoop集群及HBase安装的一些记录(基于林子雨老师的大数据软件安装和基础编程)
- windows系统ping端口及利用telnet命令Ping 端口
- 文字转语音开源软件-espeak
- i2c驱动之at24c08(1)
- java docx4j 使用教程_使用Docx4j操作PPT指南系列(二)
- android开发笔记之xml矢量图片
- office各版本网盘免费下载