Home IDEA Connect Remote Server
Post
Cancel

IDEA Connect Remote Server

IDEA远程连接服务器

环境

  • IDEA装在本地Windows 11
  • 远程服务器Ubuntu 20.04

前言

  • 实现的功能是,用本地的JDK编译代码,将class文件上传到服务器上运行
  • 服务器上必需:rsync(可以不用,配Windows感觉鸡肋), openssh-server, openssl
  • 本地(Windows)必需:cwRsync(Windows的很鸡肋), IDEA
  • 网上看到了很多教程要很多配置,但是其实并不需要,只需装核心的依赖,但因实现了,也就记录了

Rsync配置 (忽略)

Server端 (Ubuntu)

  • 安装

    1
    
    apt install rsync
    
  • Rsync配置 (可以不配置)

    1
    
    vi /etc/rsyncd.conf
    

    粘贴以下代码:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    
    uid = 0
    gid = 0
    port = 873
    fake super = yes
    use chroot = no
    max connections = 200
    timeout = 600
    ignore errors = no
    read only = no
    list = false
    auth users = star
    secrets file = /etc/rsyncd.secrets
    log file = /var/log/rsyncd.log
      
    [public]
    comment = welcome to oldboyedu backup!
    path = /tmp/public
    

本地端 (Windows)

SSH配置

服务器上配置

本地IDEA配置

  1. 添加SSH

    • Editor Configurations -> Manage Targets -> Add SSH, 填写Host, Port(Docker的话填容器22端口对外映射的宿主机端口), Username, Password

    • 勾选Use rsync(也可以不勾),填写项目在服务器上的路径,选择JDK路径以及JDK版本(不填也可以)

      • JDK路径查看 (能跑起来不报错就可以不管这个)

        1
        
        which java		# 查看Java路径,可能是软链接,是软链接的话就用 ls -l 一直查找下去,直到非软链接为止
        

        如下圈出部分为JDK路径:

      • JDK版本查看

        1
        
        java -version
        
    • 配置后测试连接

  2. 检查配置

    Runs on选择刚添加的target,检查路径等

Rsync的其他配置

网上看到关于Rsync的很多配置,下面给出一些,如果配置失败的话就尝试下面的方法:

  1. 免密登录

    • 在 cwRsync 路径下以管理员方式打开cmd,执行ssh-keygen.exe -t dsa,路径建议填在当前路径下,如./id_dsa,随后会生成两个文件:id_dsaid_dsa.pub,将 pub 文件上传到服务器的 ~/.ssh 中,执行cat id_dsa.pub >> authorized_keys 实现免密登录

      • 上一步中若找不到.ssh文件夹,使用ssh localhost命令 (若没有ssh则执行apt intall openssh-client)

  2. ssh.exe (不建议)

  • C:/Windows/System32/OpenSSH中的ssh.exe文件复制到cwRsync中替换掉ssh.exe

最后

  • 相比起Jetbrains的其他产品,如CLion和Pycharm,由于Windows和Linux路径定义和符号规则等差异,Windows下的IDEA连接远程服务器使用起来并不方便,Rsync配置后也还是鸡肋,因此建议还是在Mac下或者Linux虚拟机里使用IDEA

参考

IDEA Run Target远程执行Java & Debug-CSDN

rsync常见问题及解决办法-简书

This post is licensed under CC BY 4.0 by the author.