外网ssh远程连接服务器

本文详细介绍了如何通过CPolar工具在外网环境下实现SSH远程连接服务器的过程,包括安装cpolar客户端、配置token认证、设置服务以及进行穿透测试和连接步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

外网ssh远程连接服务器

一、前言

同一个局域网内远程ssh连接服务器,只需要知道服务器的IP地址就可以实现连接。但是在不同的局域网下,我们想要通过外网远程连接服务器(应用场景:在家远程连接公司的服务器,在家远程连接学校实验室的服务器…)应该如何实现呢?

原理:通过内网穿透实现ssh远程连接

工具:cpolar内网穿透

二、配置流程

1. 在服务器上安装cpolar客户端

cpolar官网

curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash

image-20240123110843905

2. 查看版本号,有正常显示版本号即为安装成功

cpolar version

3. token认证

登录cpolar官网后台,点击左侧的验证,查看自己的认证token,之后将token贴在命令行里。

cpolar authtoken xxxxxxx

image-20240123101930505

image-20240123101621321

4. 简单穿透测试

cpolar http 8080

按ctrl+c退出

image-20240123102018175

5. 向系统添加服务

sudo systemctl enable cpolar

image-20240123102228668

6. 启动cpolar服务

sudo systemctl start cpolar

image-20240123102247578

7. 查看服务状态

sudo systemctl status cpolar

如下所示,正常显示为active则为正常启动状态

8. 登录后台,查看隧道在线状态

  • https://dashboard.cpolar.com/status

安装完成后,会默认配置一个简单的样例配置文件,创建了两个样例隧道,一个是web隧道指向 http 8080端口,一个是ssh隧道指向tcp 22端口。我们用到的就是ssh隧道,登录cpolar官网后台,点击左侧的状态,查看ssh隧道对应的URL。

image-20240123102757283

9. 在远程控制端,实现外网ssh远程连接服务器

ssh -p XXXXX username@公网地址

# XXXXX为cpolar生成的端口号,为ssh隧道对应URL最后面的“:”后面的数字。
# username为服务器用户名,例如root。
# 公网地址为ssh隧道对应的URL中的地址,例如1.tcp.vip.cpolar.cn

# example:ssh -p 11556 amax@2.tcp.vip.cpolar.cn

image-20240123115730858

成功连接!!!

【注】使用免费的cpoalr内网穿透所生成的公网地址为随机临时地址,24小时内会随机变化。如果需要长期远程访问建议配置固定TCP端口地址,并提高带宽,实现更为高效流畅的远程。

三、安装说明

  • cpolar默认安装路径 /usr/local/bin/cpolar
  • 安装脚本会自动配置systemd服务脚本,启动以后,可以开机自启动。
  • 如果第一次安装,会默认配置一个简单的样例配置文件,创建了两个样例隧道,一个web,一个ssh
  • cpolar配置文件路径: /usr/local/etc/cpolar/cpolar.yml

参考:

cpolar使用文档

Bash 脚本教程

😃😃😃

### 如何从互联网通过 SSH 远程连接服务器 为了安全地从外部网络访问服务器,确保采取适当的安全措施来验证正在连接的目标确实是预期的服务器。这可以通过手动登录并运行 `ssh-f /etc/ssh/ssh_host_key.pub` 来查看服务器指纹实现[^1]。 如果显示的指纹与Visual Studio Code或其他客户端提示的一致,则可以确认正尝试建立连接的是正确的服务器,并继续操作。 对于SSH密钥对保存路径的选择,在创建新的SSH密钥时按Enter键可将其存储在家目录下的`.ssh/`子文件夹中,也可以指定其他位置[^3]。 #### 配置防火墙和路由器端口转发 为了让来自Internet的请求能够到达内部网络中的目标机器,通常需要配置位于两者之间的设备(如路由器)。具体来说就是设置端口转发规则,使得进入特定端口号的数据包被导向至局域网内某台计算机上的同一端口。对于大多数家庭级路由器而言,此过程涉及登录Web界面找到相应选项卡完成设定;而对于企业环境则可能涉及到更复杂的策略管理。 #### 使用公私钥认证代替密码输入 除了基本的身份校验之外,采用基于密钥的方式而非简单的用户名加密码组合来进行身份识别是一种增强型做法。它不仅提高了安全性还简化了自动化脚本编写工作流程。生成一对匹配良好的RSA/ECC类型的加密材料后,只需把其中一部分放置于远端主机上作为信任依据即可免去每次都需要人工干预的过程。 ```bash # 在本地终端执行下面命令生成无密码短语保护的新密钥对 ssh-keygen -t rsa -b 4096 -C "[email protected]" ``` 接着复制新产生的公共部分给远程节点: ```bash ssh-copy-id user@remotehost ``` 以上步骤完成后应该可以直接利用SSH协议无缝接入目的地址而无需再额外提供任何凭证信息。 #### 安全加固建议 仅安装必要的服务组件有助于减少潜在攻击面。例如只保留SSH一项功能而不必加载其它不必要的软件包[^4]。另外考虑到超级管理员权限账户容易成为恶意行为者重点关注对象的事实,尽可能限制root用户的直接暴露程度也是十分重要的——比如关闭其远程登陆许可或是启用二次验证机制等手段都可以有效降低风险水平。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值