ssh反向登录

一、服务器配置

1.配置公网的服务器ssh登录(如腾讯云服务器、阿里云服务器)

sudo apt-get install openssh-server  #安装openssh-server

sudo service ssh start #启动openssh-server
ps -e |grep sshd #查看ssh服务是否启动 -e查看全部进程
service ssh status #查看ssh运行状态

2.增加用户:

sudo adduser test_user (删除则用userdel 或userdel -r连同用户文件一起删除)输入密码后直接回车

复制代码
root@root:~# sudo adduser test
Adding user ` test' ...
Adding new group ` test' (1001) ...
Adding new user ` test' (1001) with group ` test' ...
Creating home directory `/home/test' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for  test
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n]Y
复制代码

3.生成公私秘钥

登入test用户后, ssh-keygen -t rsa直接回车。生成的私钥可以保存到客户端A机器,用于无密码登录;

复制代码
 ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/test/.ssh/id_rsa):
Created directory '/home/test/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/test/.ssh/id_rsa.
Your public key has been saved in /home/test/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:7g47YR3S39cHlfPK2TwzL69/HFNBm7fKM71J85z1WL0 test@root
The key's randomart image is:
+---[RSA 2048]----+
|              ...|
|               ++|
|       .       +=|
|      . o     . =|
|       oSo . . O.|
|      o.. . o B**|
|     ....    * =%|
|      .+      =+&|
|      .oo     oEB|
+----[SHA256]-----+
复制代码

4.配置公钥到配置文件并重启

cat /home/test/.ssh/id_rsa.pub >>/home/test/.ssh/authorized_keys
sudo service ssh restart
sudo service sshd restart

5.配置云服务器允许所有端口,或部分端口

 

 

 更改云服务器配置:

配置/etc/ssh/sshd_config文件的项为Yes

重启云服务器

GatewayPorts yes

二:客户端A反向远程连接服务器

        ssh -i /test/id_rsa -o StrictHostKeyChecking=no -CqTfnN -R :33333:localhost:22222 test@remotehost

id_rsa:服务器配对的私钥
-o StrictHostKeyChecking=no :登录时不用输yes
33333:指定远程服务器连接端口
localhost:客户端A
22222:客户端A的ssh使用端口
test:服务器用户名
remotehost:服务器IP

 

三、客户端B通过服务器反向连接客户端A

  ssh -p 33333 root@remotehost

33333:客户端A指定连接服务器端口
root:客户端A的用户
remotehost:服务器的ip
输入密码为客户端A的root用户登录密码

 

posted @   jest549  阅读(311)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
历史上的今天:
2020-11-09 记录交叉编译时一个错误:fatal error: gnu/stubs-soft.h: No such file or directory
点击右上角即可分享
微信分享提示