admin管理员组

文章数量:1559752

Windows & Ubuntu:

1、安装Openssh

  • Ubuntu 系统比较简单,在终端中下载:

    sudo apt-get install openssh-server
    
  • windows则在 设置 - 添加可选功能中搜索安装OpenSSH客户端与服务器

  • 右键 我的电脑 管理 设置OpenSSH服务为打开:

右键属性,将两项启动类型均设置为自动,并右键启动

2、检查是否启动

  • windows在 PowerShell(Windows搜索栏直接搜索)中检查是否启动:

    ssh -V
    
    Get-Service -Name *ssh*
    

    左边Status显示Running即可

    Ubuntu系统:

    sudo ps -e | grep ssh # 检查是否启动
    
    sudo service ssh start # 启动ssh
    
  • 检查是否监听 22 号端口:

    netstat -an | findstr :22 # windows
    
    netstat -an | grep :22 # Ubuntu
    

生成密钥对免密登录

  • 进入.ssh文件夹下生成密钥对:

  • 打开C:\Users\your_name\.ssh文件夹,将刚生成的.pub文件改名为authorized_keys(Ubuntu在~/.ssh

  • 更改 C:\ProgramData\ssh\sshd_config文件:(Ubuntu在/etc/ssh/)

  • Winods在之前我的电脑中的服务中重启服务

    Get-Service sshd
    

    Ubuntu系统直接重启即可

    sudo service sshd restart
    
  • 如果是在同一局域网下的两台机器就可以直接通过ssh连接了

    这里点击Vscode左下角的远程连接,然后输入ssh 用户名@地址即可连接(Windows用户名为微软账号,可以在电脑中搜索用户信息查看),这里要输入密码

  • 这里可以按 Ctrl + Shift + P搜索 Open SSH Configuration File

    打开设置进行配置:

    这里的HostName即为ip地址,User为用户名,设置好 IdentityFile后即可实现免密登录啦(改了端口的可以设置Port xxx,这里的xxx指的是被远程主机的ssh端口,不清楚可以在上文sshd_config文件中查看)

创建云服务器并实现内网穿透

免费的可以使用Tailscale进行实现,但是速度太慢了,很卡顿。Tailscale只需要在两台电脑中下载并在同一账号下即可,登录官方admin界面可以看到每个的机器的公网ip,通过公网ip进行连接

  • 选择阿里云的ECS服务器,这里选择的是Ubuntu系统

    记录下公网ip地址

  • 在上述页面中选择重置密码,设置root用户密码

  • 打开阿里云端口:

  • 下载 frp

  • 解压文件后在本地可以看到如下文件:

    这里注意区分,frps frps.toml均为服务器上需要的文件,注意下载Linux系统的文件

  • 通过Vscode的ssh连接到服务器

    这里的 xxx.xxx.xxx为公网的ip地址,连接后需要输入密码

  • 连接后打开 /root/目录 在 .ssh文件夹下找到 authorized_keys,将之前生成authorized_keys的文件内容直接复制到文件中,并将 /etc/ssh/sshd_config配置一下(参考上文)

    重启服务后就实现了免密登录了

  • 这里将上面所用到的frps frps.toml拷贝到服务器上,在vscode中直接拖动就行,在终端执行:

    ./frps -c frps.toml
    

    其中 frps.toml

    bindPort = 7000
    

    端口为7000,这里可以更改,这里表达的意思是服务器会开放7000端口供其他机器连接

  • 然后到需要远程到的机器上,比如:

    MacOS想连接不在同一局域网下的Windows,那么MacOS 需要通过内网穿透来连接,MacOS先连接到阿里服务器上然后中转到Windows,而这里则需要我们将frpsc frpc.toml客户端服务放在Windows中

    这里需要更改 frpc.toml文件:

    serverAddr = "公网ip"
    serverPort = 7000 # 这里与服务器上设置的7000对应
    
    [[proxies]]
    name = "ssh"
    type = "tcp"
    localIP = "127.0.0.1"
    localPort = 22 # Windows中ssh的端口
    remotePort = 6000 # 中转的端口
    
  • 设置好后重启服务即可远程连接:

    ssh -i path/to/TenYago -p 6000 username@阿里公网ip
    

    这里需要注意的是 username为Windows的用户名,同理我们可以和上面一样可以在Vscode中设置免密登录。

  • 自启动:

    • Ubuntu:

      安装插件systemd:

      sudo apt install systemd
      

      修改配置,添加如下代码:

      vim /etc/systemd/system/frps.service
      
      [Unit]
      #服务描述
      Description=frpc service
      After=network.target syslog.target
      Wants=network.target
      
      [Service]
      Type=simple
      #执行命令
      ExecStart=/root/frpc/frps -c /root/frpc/frps.ini
      
      ExecStop=/bin/kill $MAINPID
      Restart=always   #监控服务是否成功启动,未启动等待5分钟后从新启动
      RestartSec=5    #等待时间
      StartLimitInterval=0
      
      
      [Install]
      WantedBy=multi-user.target
      

      开机自启动:

      sudo systemctl enable frps
      
    • windows:

      编写脚本 frpc_autostart.bat :

      @echo off
      :home
      frpc.exe -c frpc.toml
      goto home
      

      编写frpc.vbs脚本:

      Set WshShell = CreateObject("WScript.Shell")
      WshShell.Run "Path/to/frpc_autostart.bat",0,True
      

      frpc.vbs脚本放入到C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp文件夹下面

      这样就实现了开机自启动了~

参考连接:

如何优雅地访问远程主机?SSH与frp内网穿透配置教程

通过 SSH 访问内网机器

本文标签: 阿里内网步骤详细SSH