三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

Ubuntu安装FinalShell/VS Code+Remote-SSH远程工具

Ubuntu安装FinalShell/VS Code+Remote-SSH远程工具

一键安装脚本(FinalShell + VS Code + Remote-SSH)

这个脚本会自动完成所有安装步骤,只需复制到终端执行,全程无需手动干预。

1. 创建并执行一键脚本
# 创建脚本文件 cat > install_remote_tools.sh << 'EOF' #!/bin/bash set -e # 出错立即停止 # 第一步:更新系统 echo "===== 1. 更新系统 =====" sudo apt update -y sudo apt upgrade -y # 下载最新版FinalShell echo "下载FinalShell安装包..." rm -rf ~/finalshell && mkdir -p ~/finalshell && cd ~/finalshell wget https://www.finalshell.com/linux/FinalShell-linux-8.0.0.zip -O FinalShell-linux.zip # 解压并安装 unzip FinalShell-linux.zip -d finalshell_temp cd finalshell_temp/FinalShell-linux-* chmod +x install.sh sudo ./install.sh # 清理临时文件 rm -rf ~/finalshell # 提示完成 echo "FinalShell安装完成!终端输入 finalshell 启动" EOF # 第三步:安装VS Code依赖 echo -e "\n===== 3. 安装VS Code依赖 =====" sudo apt install software-properties-common apt-transport-https wget openssh-client -y # 第四步:安装VS Code echo -e "\n===== 4. 安装VS Code =====" wget -q https://packages.microsoft.com/keys/microsoft.asc -O- | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main" -y sudo apt update -y sudo apt install code -y # 第五步:安装Remote-SSH扩展 echo -e "\n===== 5. 安装Remote-SSH扩展 =====" code --install-extension ms-vscode-remote.remote-ssh # 完成提示 echo -e "\n===== 安装完成 =====" echo "FinalShell启动:终端输入 finalshell" echo "VS Code启动:终端输入 code 或应用菜单搜索Code" EOF # 赋予脚本执行权限 chmod +x install_remote_tools.sh # 执行脚本 sudo ./install_remote_tools.sh
2. 脚本执行说明
  • 执行后会自动更新系统、安装 FinalShell、VS Code 及 Remote-SSH 扩展;
  • 全程可能需要输入 Ubuntu 密码(sudo 权限),输入后回车即可;
  • 安装完成后,终端会提示启动方式,直接用即可。

二、密钥免密登录详细版(FinalShell/VS Code 通用)

免密登录核心是「本地生成密钥对 → 公钥上传到远程服务器 → 配置 SSH」,一次配置,所有 SSH 工具都能免密

第一步:本地(Ubuntu)生成 SSH 密钥对
  1. 打开终端执行(一路回车,无需设置密码,设置了反而需要每次输密钥密码):

    ssh-keygen -t ed25519 # ed25519是更安全的加密方式,比rsa更推荐
    • 执行后会在~/.ssh/目录生成两个文件:
      • id_ed25519:私钥(本地保留,绝对不能泄露);
      • id_ed25519.pub:公钥(上传到远程服务器)。
  2. 验证密钥是否生成成功:

    ls ~/.ssh/ # 能看到id_ed25519和id_ed25519.pub即成功
第二步:将公钥上传到远程服务器
方法 1:一键上传(推荐,最简单)
# 替换为你的服务器信息:ssh-copy-id -i 公钥路径 服务器用户名@服务器IP ssh-copy-id -i ~/.ssh/id_ed25519.pub root@192.168.1.100
  • 首次执行会提示「Are you sure you want to continue connecting?」,输入yes回车;
  • 然后输入远程服务器的密码,回车后公钥就会自动上传并配置。
方法 2:手动上传(备用,适用于 ssh-copy-id 不可用的情况)
  1. 先复制本地公钥内容:
    cat ~/.ssh/id_ed25519.pub # 复制输出的全部内容
  2. 登录远程服务器(用密码):
    ssh root@192.168.1.100
  3. 在远程服务器执行:
    # 创建.ssh目录(如果不存在) mkdir -p ~/.ssh # 设置目录权限(必须,否则SSH会拒绝) chmod 700 ~/.ssh # 将公钥写入authorized_keys文件 echo "你复制的公钥内容" >> ~/.ssh/authorized_keys # 设置文件权限(必须) chmod 600 ~/.ssh/authorized_keys # 退出远程服务器 exit
第三步:验证免密登录

本地终端执行,无需输入密码即可登录即为成功:

ssh root@192.168.1.100
第四步:配置 FinalShell/VS Code 免密登录
1. FinalShell 免密登录
  • 打开 FinalShell → 编辑已有的 SSH 连接 → 切换到「认证」标签;
  • 选择「验证类型」为「公钥」;
  • 「私钥」选择本地的~/.ssh/id_ed25519文件;
  • 保存后,双击连接即可免密登录。
2. VS Code 免密登录
  • 打开 VS Code → 左下角绿色图标 → Connect to Host → 选择你的服务器;
  • 首次免密连接会自动验证,后续连接无需任何密码。

远程连接Linux服务器,切换root权限

一、前提:远程连接服务器

先通过之前装的 FinalShell/VS Code Remote-SSH / 原生 SSH 工具连接服务器:

# 原生SSH示例(FinalShell/VS Code操作同理) ssh 普通用户@服务器IP # 比如 ssh ubuntu@192.168.1.100

连接成功后,终端提示符会显示普通用户名@主机名(比如ubuntu@server),表示当前是普通用户权限。


二、切换 root 权限的两种核心方法

方法 1:临时切换 root(推荐,安全)

这是最常用的方式,保留普通用户登录,仅在需要时临时提权到 root,操作完成后可切回普通用户。

1. 核心命令:su/sudo -i
命令作用适用场景
sudo -i切换到 root 环境(最推荐)Ubuntu/Debian 系统默认用这个,无需记 root 密码(用当前普通用户密码)
su rootsu切换到 rootCentOS/RHEL 系统更常用,需要输入 root 密码
2. 具体操作步骤
(1)Ubuntu/Debian 系统(无默认 root 密码,优先用 sudo)
# 步骤1:普通用户登录后,执行以下命令 sudo -i # 步骤2:输入当前普通用户的密码(输入时无回显,正常输入后回车) # 成功后,终端提示符会变成 #(普通用户是 $),比如 root@server:~#
(2)CentOS/RHEL 系统(有 root 密码,可用 su)
# 步骤1:普通用户登录后,执行 su root # 简写 su 也可以 # 步骤2:输入root密码(回车) # 成功后提示符变为 #,表示已切换到root
3. 切回普通用户

完成 root 操作后,执行以下命令即可回到普通用户:

exit # 或按 Ctrl+D # 提示符变回 $,表示回到普通用户

方法 2:全程以 root 身份登录(慎用,不安全但便捷)

直接用 root 用户远程登录服务器,无需切换权限,适合高频操作 root 的场景(仅限内网 / 可信环境使用,公网服务器不建议)。

1. 前提:开启 root 远程登录(默认禁用,需先配置)
(1)Ubuntu 系统(默认禁用 root SSH 登录)
# 步骤1:先切换到root(用方法1的sudo -i) sudo -i # 步骤2:设置root密码(首次需设置) passwd root # 输入两次root密码(记住!) # 步骤3:修改SSH配置,允许root登录 vim /etc/ssh/sshd_config # 找到 #PermitRootLogin prohibit-password 这行,修改为: PermitRootLogin yes # 按 Esc → :wq 保存退出 # 步骤4:重启SSH服务生效 systemctl restart sshd
(2)CentOS 系统(默认允许 root 登录,只需设置密码)
# 切换到root su root # 设置/修改root密码 passwd root # 输入两次密码即可
2. 用 root 远程登录
# 原生SSH ssh root@服务器IP # FinalShell/VS Code: # 连接配置中用户名填 root,密码填刚设置的root密码,直接登录

三、关键注意事项

  1. 权限问题:普通用户执行sudo时,必须是sudoers 列表中的用户(Ubuntu 默认创建的第一个用户在列表里,CentOS 需手动添加);
  2. 密码回显:输入密码时终端无任何显示(不是卡了),正常输入即可;
  3. 安全建议
    • 公网服务器禁止直接 root 登录,优先用普通用户 +sudo -i临时提权;
    • 若必须开启 root 登录,建议配合 SSH 密钥(而非密码),并修改默认 22 端口;
  4. 常见报错
    • sudo: 抱歉,您必须拥有一个终端来执行此操作:远程连接时加-t参数,比如ssh -t ubuntu@IP sudo -i
    • su: 认证失败:密码输入错误,或 Ubuntu 未设置 root 密码(先执行passwd root)。

总结

  1. 临时提权(推荐):普通用户登录后,Ubuntu 用sudo -i(输普通用户密码),CentOS 用su root(输 root 密码);
  2. 全程 root 登录:需先开启 root SSH 权限(Ubuntu 改配置 + 设密码),仅限内网使用;
  3. 安全核心:公网服务器优先 “普通用户 + sudo”,禁用 root 密码登录,改用密钥。
← 返回列表