1. 开发环境:

我的Window 10办公室电脑要连接Centos根服务器10.19.129.13,以及他的局域网下的子服务器hdp03。

所以

Window 10与跟服务器10.19.129.13在一个局域网下,可以直接连接。

Window 10与子服务器hdp03并不在一个局域网下,不能直接连接,需要先连接10.19.129.13再连接hdp03。这里根服务器10.19.129.13就叫做跳板机。

基于以上环境,就可以开始下面的配置了。(没有跳板机的也可以参考)

2. 安装必备软件

  • VS code: https://code.visualstudio.com/, 官网下载很傻瓜式操作

    • 换成中文界面

      安装完成后打开软件,按快捷键Ctrl+Shift+P, 在弹出的命令框里输入Config Display Language , 点击zh-cn(没有的话点击install other language, 第一个就是安装简体中文)

  • SSH-Windows: https://github.com/PowerShell/Win32-OpenSSH/releases

    • 下载OpenSSH-Win60.zip,解压到某个文件夹,然后把这个文件夹添加到环境变量即可

3. 配置远程服务器

  • 安装Remote Development插件,搜索安装即可

remote

  • 选择SSH Target, 并打开配置文件

    configfile

  • 在打开的文件里插入配置

    Host iData 
        HostName 10.19.129.13
        Port 22 
        User yangzhp
       
    Host worker03
        HostName hdp03
        User yangzhp
        ProxyCommand ssh -W %h:%p iData
    

    带注释版。。。

    Host iData                  #iData 只是个名字,可以按照自己的喜好随便取
        HostName 10.19.129.13   #跳板机的ip地址
        Port 22                 #ssh的端口,默认就是22
        User yangzhp            #跳板机系统的登录的用户名
     
    Host worker03               #worker03也只是用户名
        HostName hdp03          #子服务器的IP地址,(我们的服务器在跳板机上做了映射hdp03就对应一个IP地址,没做映射的话直接填局域网的IP地址即可)
        User yangzhp            #子服务器系统的登录的用户名
        ProxyCommand ssh -W %h:%p iData #代理命令,不需要改,注意这里的iData跟上面的跳板机对应即可
    
  • 然后就可以连接啦,点击连接后输入密码即可

connect

4.设置免密登录

参考:我最终还是选择了VS code!

vscode通过跳板机(堡垒机)连接remote服务器

上面的配置好的remote连接每次都要填密码就很烦,所以免密登录就非常有必要了。

  1. 打开cmd命令行执行ssh-keygen, 然后一路Enter键,不输入任何东西,最后会在C:\Users\your_user_name\.ssh路径下生成公钥文件id_rsa.pub

  2. 在命令行用scp把公钥文件上传到跳板机

    cd C:\Users\your_user_name\.ssh
    scp id_rsa.pub yangzhp@10.19.129.14:~/
    

    注意替换your_user_name

    注意路径,我这个是把当前文件夹下的id_rsa.pub上传到yangzhp@10.19.129.13服务器上的~/用户文件夹下

  3. 登录到跳板机服务器进行配置

    ssh yangzhp@10.19.129.13
    cd ~/.ssh
    cat ~/id_rsa.pub >> authorized_keys
    

    也就是把id_rsa.pubwindows上ssh的公钥添加到跳板机的ssh的authorized_keys目录里面

    再修改一下权限

    chmod 700 authorized_keys
    

    现在就可以免密远程登录跳板机了

  4. 配置子服务器hdp03

    (1) 在跳板机上执行ssh-keygen生成跳板机的公钥,同样是生成到~/.ssh用户文件夹下

    (2) 把跳板机的id_rsa.pub都用scp上传到子服务器hdp03

    (3) 分别把公钥文件id_rsa.pub添加到hdp03的authorized_keys文件中

    (4)把window的id_rsa.pub也上传添加到hdp03的authorized_keys文件中

    (5) 修改文件权限

    按道理这样就可以了,但是我的还是不能免密登录子服务器hdp03

    我又尝试了

    修改配置文件

    sudo vim /etc/ssh/sshd_config
    
    添加两行
    
    PubkeyAuthentication yes
    PermitEmptyPasswords yes
    
    重启服务
    service sshd restart
    

    更改文件夹权限

    chmod 700 ~/.ssh
    chmod 644 ~/.ssh/authorized_keys
    

    还是不行,暂时先放弃吧,这都折腾两个小时了快