汕尾海湾 发表于 2024-8-14 13:22:45

腾讯云服务器之ssh远程毗连登录及转发映射端口实现内网穿透(实现服务器访

一、创建密钥绑定实例

https://img-blog.csdnimg.cn/direct/98644cbe6e624c23b0d144279fdf61c1.png
   创建密钥会自动下载一个私钥,把这个私钥复制到c盘
https://img-blog.csdnimg.cn/direct/9b6872f0011642e4ab5d11d61da9dc1e.png
二、设置私钥权限

   1、删除所有效户权限
https://img-blog.csdnimg.cn/direct/2c1b3356ec544c6888bc2b008586bffd.png
https://img-blog.csdnimg.cn/direct/de837999bd88434f9bffe17f79802a76.png
   2、添加当前用户权限
检察当前用户名
echo %USERNAME%
https://img-blog.csdnimg.cn/direct/76284d11ff7c4355b9d424771d206621.png
https://img-blog.csdnimg.cn/direct/2ca9f021334d4b028eaf88ce5969ae96.png
https://img-blog.csdnimg.cn/direct/1a8fbf3e652742baa31c125616e767f8.png
https://img-blog.csdnimg.cn/direct/2789055fd8bb49498d877019db13716e.png
   如果更改了密钥要实行下面代码
ssh-keygen -R 175.xxx.xxx.154
三、ssh远程毗连到服务器

ssh ubuntu@175.xxx.xxx.112 -i C:\Crack\cs2.pem
四、修改root暗码

sudo passwd root
su root
五、端口转发(实现服务器访问当地电脑的端口)

   当地电脑cmd实行
ssh -R 8080:127.0.0.1:8080 ubuntu@175.xxx.xxx.154-i C:\Crack\cs2.pem# 访问服务器的本地端口,即是访问本地电脑的端口
# 或者
# ssh -L 8080:127.0.0.1:8080 ubuntu@175.xxx.xxx.154-i C:\Crack\cs2.pem# 访问本地电脑的端口,即是访问服务器localhost的端口
   linux实行访问命令
curl http://127.0.0.1:8080/sign
   可以看到输出了我在当地电脑搭建的网络响应内容
https://img-blog.csdnimg.cn/direct/e79806e857c34cec882cfbe698e1c02d.png
   检察端口绑定信息,linux实行
netstat -tnlp4 | grep 8080

   可以看到绑定的只是服务器的当地端口,别人访问服务器公网ip肯定访问不了
https://img-blog.csdnimg.cn/direct/be95339079c6450f8e4007695c3676c2.png
六、实现公网ip访问当地电脑http服务(即别人通过服务器公网ip即访问你当地电脑网络服务)

   先退出上面端口转发,登录服务器linux实行
su
vim /etc/ssh/sshd_config
   找到这个并取消解释改为yes
https://img-blog.csdnimg.cn/direct/fb4fbb8c88ce451eb278e0056d8f42ca.png
   服务器linux实行命令,重启sshd服务(或者重启服务器也行)
systemctl   stop   sshd
systemctl   start   sshd
   打开cmd实行
ssh -R 8080:127.0.0.1:8080 ubuntu@175.xxx.xxx.154-i C:\Crack\cs2.pem
# ssh -f -N -R 8080:127.0.0.1:8080 root@175.xxx.xxx.154 -i C:\altk.pem# 后台运行,即关闭cmd窗口也可以
netstat -tnlp4 | grep 8080

https://img-blog.csdnimg.cn/direct/a881cc508cde48e4b0bbfec349f71d8c.png
   可以看到绑定了0.0.0.0地址,即别人可以通过公网ip访问到你当地电脑的http服务(记得腾讯云后台防火墙打开端口)
七、ssh保持长毗连

sudo vim /etc/ssh/sshd_config
   修改下面这两个
ClientAliveInterval 60 #server每隔60秒发送一次请求给client,然后client响应,从而保持连接
ClientAliveCountMax 999999999 #server发出请求后,客户端没有响应得次数达到999999999,就自动断开连接,正常情况下,client不会不响应
八、设置若ssh毗连断开则自动重连(包管ssh长期稳固)

   新建一个ssh-tunnel.ps1文件,内里内容如下,若服务器内网穿透的端口无法访问则大概ssh断开毗连了,则需要重连
while ($true) {
    Write-Host "start run!"
    $url = "http://175.xxx.xxx.154:8080/sign"
    $flag = 0
    try {
    $response = Invoke-WebRequest -Uri $url -Method Head -ErrorAction Stop -TimeoutSec 3
    Write-Host "request success! $($response.StatusCode)"
} catch {
    Write-Host "request fail! $url"
    $flag = 1
}

    if ($flag) {
      Write-Host "ssh connect..."
      ssh -R 8080:127.0.0.1:8080 ubuntu@175.xxx.xxx.154 -i C:\tk.pem
                Write-Host "ssh connect closed!"
    }
    Start-Sleep 6# 设置重连时间
}
   powershell管理员实行ssh-tunnel.ps1文件即可
./ssh-tunnel.ps1
   需要一直打开powershell窗口
使用下面代码也可以
$maxRetries = 10
$retryCount = 0
while ($retryCount -lt $maxRetries) {
    try {
      Write-Host "Start connect..."
      ssh -R 8080:127.0.0.1:8080 ubuntu@175.xxx.xxx.154 -i C:\tk.pem
      $retryCount = 0
    } catch {
      Write-Host "Connection failed!"
      $retryCount++
    }
    Start-Sleep -Seconds 10   # 重连等待10秒
}

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 腾讯云服务器之ssh远程毗连登录及转发映射端口实现内网穿透(实现服务器访