VNC+SSH的配置与使用(Debian xfce4)

2023-05-16

服务器端设置

安装vncserver:

	sudo apt-get install tightvncserver

配置桌面启动脚本文件 ~/.vnc/xstartup,文件不存在则新建,内容如下:

    #!/bin/sh
    
    unset SESSION_MANAGER
    unset DBUS_SESSION_BUS_ADDRESS
    startxfce4 & pulseaudio &
    fcitx &
    
    [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
    [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
    xsetroot -solid grey

使文件可执行:

	chmod +x ~/.vnc/xstartup

修改SSH配置文件 /etc/sshd_config:

SSH服务的基本设置请查看另一篇文章 Debian Linux SSH/SFTP 服务设置 ,这里仅说明SSH连接VNC要做的必要修改。

  • 首先在全局设置区禁止用户使用密码登录而只能用私匙文件登录:

      PasswordAuthentication no
      PermitEmptyPasswords no
      PermitRootLogin no
      StrictModes yes
      
      RSAAuthentication yes
      PubkeyAuthentication yes
      AuthorizedKeysFile  %h/.ssh/authorized_keys
    
  • 同时还要禁止X11和TCP转发:

      X11Forwarding no
      X11DisplayOffset 10
      PrintMotd no
      PrintLastLog yes
      AllowTcpForwarding no
      TCPKeepAlive yes
    
  • 单独设置允许使用vnc或SFTP的个别用户:

      Subsystem sftp internal-sftp
      AllowGroups xvnc sftp
      
      Match Group sftp
      ForceCommand internal-sftp
      ChrootDirectory /home/SFTP
      PasswordAuthentication yes
      
      Match Group xvnc
      X11Forwarding yes
      AllowTcpForwarding yes
    

    上例中允许通过私匙文件使用vnc的是“xvnc”组,允许通过SFTP密码登录的是sftp组。

客户端设置

Remmina安装

VNC连接软件使用Remmina,它只能在Linux下使用。我还没发现哪个Windows下的应用程序能够通过SSH私匙使用VNC。

sudo apt-get install remmina remmina-plugin-vnc

SSH连接到服务器并开启vnc桌面

安装成功后打开Remmina,新建一个SSH连接,认证类型当然是使用私匙。SSH连接到服务器后,使用下面命令开启vnc桌面服务:

vncserver -name myVNC -geometry  1820x960  -httpport 5901  :1

如果第一次启用vnc服务,会提示你设置访问密码。如果没有错误信息,断开SSH连接即可。

通过SSH通道连接VNC

如果你愿意,上一步开启的VNC桌面完全可以只使用密码就能访问,但数据是不加密的。我们费劲设置SSH的目的就是为了安全。

在Remmina中新建一个VNC查看器连接(VNC viewer),服务器通常是ip或域名加编号的形式,如:

192.168.1.106:1

色彩深度和画质按需选择。然后赚到“SSH Tunnel”(SSH通道)标签页设置启用SSH通道,SSH验证方式选择为私匙文件即可。保存后双击该设置即可连接,会有私匙密码和VNC密码输入的提示。

顺利的话你会看到跟服务器本地登录差不多的桌面,但这是一个新的登录,桌面是新的。

使用结束后记得通过SSH关闭VNC服务,否则他人有可能使用密码(而不需要私匙文件)就能访问你的桌面:

vncserver -kill :1

作者: ZGUANG@LZU
Created: 2018-10-19 五 09:54

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VNC+SSH的配置与使用(Debian xfce4) 的相关文章

  • Debian 在没有桌面的情况下启动 Qt GUI 应用程序

    我在 SBC 上运行 Debian 2 6 我计划在嵌入式设置中使用它 我需要做的是配置它 以便 linux 启动并运行我的 Qt GUI 应用程序 我是否需要窗口管理器来执行此操作 或者我可以使用 X11 来执行此操作吗 另外 因为它将用
  • 如何设置 pexpect ssh 会话的列宽?

    我正在编写一个简单的 python 脚本来通过 SSH 连接到 SAN 运行一组命令 最终 每个命令将与时间戳一起记录到单独的日志中 然后退出 这是因为我们连接的设备不支持证书 ssh 连接 并且当前固件版本没有良好的日志记录功能 我似乎遇
  • 通过 Paramiko SSH 的 SQLAlchemy

    我的服务器上有一个数据库 我需要通过 SSH 访问该数据库 现在我通过使用命令行来获取数据来处理数据库 import paramiko ssh paramiko SSHClient ssh set missing host key poli
  • 将公钥添加到 ~/.ssh/authorized_keys 不会自动登录

    我将公共 SSH 密钥添加到授权密钥 file ssh localhost应该让我登录而不询问密码 我这样做并尝试输入ssh localhost 但它仍然要求我输入密码 我还需要进行其他设置才能使其正常工作吗 我已按照更改权限的说明进行操作
  • 如何使用 bash/expect 检查 SSH 登录是否有效

    我的团队管理着许多服务器 公司政策规定这些服务器上的密码必须每隔几周更改一次 有时 我们的官方密码数据库会因某种原因而过时 人们通常会忘记更新它 但有时我们要到几个月后才能识别这一点 因为我们并不总是使用每台服务器 我想编写一个脚本 从数据
  • Paramiko 和伪 tty 分配

    我正在尝试使用 Paramiko 连接到远程主机并执行许多文本文件替换 i o e client exec command perl p i e s initial replaced g conf 其中一些命令需要作为 sudo 运行 这会
  • 尝试通过 SSH 克隆时“似乎不是 git 存储库”

    我有一台运行 Windows 10 的计算机 我想在其上托管 git 存储库 OpenSSH 正在运行 我可以通过 Powershell 通过 SSH 连接到机器 因此它是可连接的 我在该机器上名为 Test 的文件夹中创建了一个新的 gi
  • GitLab 在 Debian 上安装失败

    我正在尝试在 Debian 8 5 0 上安装 GitLab 我遵循安装指南 https about gitlab com downloads debian8但最后一步失败了 我在文档中找不到任何信息 gitlab ctl 重新配置完成 R
  • 在 Python 中使用 Paramiko 模块切换到 root 用户时出现“必须从终端运行”

    我正在尝试通过 Python 脚本自动执行任务 这个想法是以普通用户身份登录 然后发送su命令并切换到 root 帐户 我无法直接以 root 身份登录的原因是SSHD不允许 root 登录 这是我所拥有的 ip 192 168 105 8
  • 在远程机器上执行多个命令

    在下面的命令中 我尝试 ssh 命令并执行多个命令 如果任何命令失败 即如果 command1 退出 那么如果 command1 和 commnd 2 退出 否则在远程计算机上执行命令 3 我如何退出 我怎样才能做到这一点 ssh logi
  • git clone 永远挂在 github 上

    当我按照 github 中的第 5 点 测试所有内容 时guide http help github com linux set up git ssh 命令也永远挂起 根据该指南 我应该看到一条消息 Github 不提供 shell 访问
  • 开始作业时无法识别功能

    我在模块 sysinfo psm1 中创建了一个函数 Get Uptime 并导入了该模块 C pstools gt get command Module sysinfo CommandType Name Definition Functi
  • 如何解决22端口连接超时问题

    ssh connect to host bitbucket org port 22 Connection timed out fatal Could not read from remote repository Please make s
  • 我可以在远程服务器上运行位于本地计算机上的 bash 脚本吗?

    我有本地脚本 我想在远程服务器上运行 我已经设置了 ssh 密钥对以启用无需密码的登录 我当前的方法是将脚本 rsync 到服务器 然后运行它 ssh user remoteserver rsync localserver script s
  • 为什么 ssh-agent 需要 root 访问权限?

    我刚刚安装了 Archbang 并尝试克隆我的 Git 项目 这需要 SSH 密钥 过去 我在 Ubuntu 和 RedHat 机器上遵循 Github 指南取得了成功 但由于某种原因 它在我的新 Arch 安装上不起作用 我已使用以下命令
  • Jenkins Git 参数插件无法获取标签

    詹金斯版本 1 593 Git 参数插件 0 4 0 GIT 客户端插件 1 16 1 我使用私有 git 存储库 可以通过 ssh 访问 我的构建是参数化的 git参数是TAG TO BUILD 要构建的分支是refs tags TAG
  • SSL 和 Tkinter 不存在于 Python 3.5.2、Debian Linux 的源代码构建中

    我刚刚将 Python 3 5 2 下载到我的 Debian 机器上并使用以下命令构建它 configure make make test sudo make install 一切正常 但在make test输出中 它显示安装程序由于未安装
  • Capistrano 和 GitHub Private Repo – 权限被拒绝(公钥)

    我继承了一个托管在 Linode 上的 Rails 项目 之前的开发人员使用 BitBucket 存储库以及 Capistrano 进行部署 我已经在 GitHub 上设置了一个私人存储库 并且正在尝试让 Capistrano 配方发挥作用
  • 与 ssh2_connect() 断开连接

    我已经使用 ssh2 连接ssh2 connect到服务器 但我没有看到任何方法在联机帮助页中 http php net ssh2 connect我应该如何结束连接 我不太喜欢在断开连接之前等待脚本结束 我可以用吗fclose 这听起来不对
  • 如何配置 Ansible 跳过两个堡垒主机?

    我想编写一个 Ansible 剧本 使用 Ansible 2 7 5 它将在到达目标服务器之前跳过两个主机来执行诸如安装 docker 和 python 等操作 我能够让 Ansible 通过一台主机跳转到server1通过将其添加到我的h

随机推荐

  • Setup Kubernetes on a Raspberry Pi Cluster easily the official way!

    转自 http blog hypriot com post setup kubernetes raspberry pi cluster Kubernetes shares the pole position with Docker in t
  • R语言网络分析1:BioC的graph图系

    BioC项目中 xff0c 网络图的处理通过不同的软件包进行 xff1a graph xff1a 图实现方法 类定义 xff08 graphNEL graphAM和graphBAM xff09 和基本函数RBGL xff1a 针对BioC
  • Doom-Emacs安装和基本使用方法

    1 Doom Emacs用前须知 Doom Emacs xff08 下面称为Doom xff09 是Emacs的一个比较复杂的配置包 xff0c 主要目的是使Emacs拥有Vim的出色编辑能力 xff0c 同时让新手配置起来相对容易些 但后
  • R语言网络分析2:graph函数和应用

    产生网络 自定义 BioC 中用得最多的网络类型可能是 graphNEL 类 使用 graphNEL 类的同名函数可以产生自定义网络 xff1a library graph str graphNEL gt function nodes 61
  • RAID扩容步骤

    以下为Debian系统的操作记录 xff0c DELL T630服务器 xff0c RAID5 xff0c 原有3块8T盘 xff0c 添加了2块8T新盘 xff0c 没有发生什么意外 1 添加硬盘 为保险起见 xff0c 关机后安装硬盘
  • R语言时间处理函数

    1 POSIXct和POSIXlt 把表示时间的字符串转成时间类型数据 xff0c 在R语言里面有两个基本的函数 xff1a as POSIXlt 和 as POSIXct 两者都是S3泛型函数 xff0c 根据参数的数据类型选择不同的转换
  • 时间序列分析:ts/mts基础数据类型

    时间序列是以时间为索引的数据 时间索引为等间距递增的时间序列称为规则时间序列 xff0c 其他为不规则时间序列 由于R语言核心组件的构建坚持以通用性为原则 xff0c 因此R的基础包中只定义了规则时间序列 xff0c 而不规则时间序列的定义
  • nginx+php+unoconv 失败?

    原因 xff1a web服务运行用户对自己的home目录没有写入权限 如果网站目录是通过fstab直接bind到 var www的 xff0c 要特别注意检查bind以后 var www目录的权限 xff08 服务器使用unoconv占用C
  • Emacs键盘练习方法

    Emacs里面什么都有 xff0c 比如俄罗斯方块游戏 xff08 tetris xff09 我要说的是 xff0c Emacs里的tetris这不只是个游戏 xff0c 它还是练习键盘的终极武器 玩这个游戏最常用的三个按键是左 右和上箭头
  • Qt中的各种编译器

    1 uic xff1a UI编译器 xff0c 将 ui文件转化为ui h文件 2 rcc xff1a 资源编译器 xff0c 将 qrc文件转换成qrc h文件 3 moc xff1a 元对象编译器 xff0c 将含有Q OBJECT的头
  • Bioconductor软件安装与升级

    本文已于2019 07 12按新版Bioconductor安装包BiocManager出现的问题进行更新 1 修改安装软件源 BioConductor安装需要下载很多文件 xff0c 如果不修改 xff0c 程序很可能是从国外网址下载 xf
  • 使用oligo软件包处理芯片数据

    本博客介绍过 Affy芯片的处理方法 xff0c 其中所使用的软件包有一定的局限性 xff0c 无法读取和分析一些新版Affy芯片 本文介绍oligo软件包的处理方法以解决这些问题 oligo软件包并不是新出现的软件包 xff0c 只因新类
  • R语言中的引号

    1 单引号和双引号 两者都可以用于表示字符串分隔 xff0c 用法和意义没有差别如果字符串包含有分隔符本身 xff0c 字符串内的分隔符引号需要转义 xff08 使用反斜杠 xff09 R语言字符串的打印 显示都是用双引号的形式表示 xff
  • ggplot2柱形图Y轴坐标扩展的简单方法

    ggplot2的坐标轴主要由映射aes确定 xff0c expand limits和coord cartesian虽然可以调整坐标轴刻度 xff0c 但对柱形图不大适用 不少使用者对扩展柱形图Y轴坐标很烦恼 xff0c 有人从源代码层面对开
  • Affy芯片ATH1-121501探针注释的处理

    Affy芯片ATH1 121501探针注释的处理 BioC有Affy芯片ATH1 121501 xff08 GPL198平台 xff09 的注释库文件 xff08 R包 xff09 xff0c 芯片分析后期处理经常要使用 xff0c 导出方
  • Debian Linux使用sun/oracle java

    1 下载Oracle JRE 从oracle 网站下载JRE源码 xff0c 如 jre 8u211 linux x64 tar gz xff0c 无需解压 2 构建JRE安装包 xff0c 并安装JRE 如果没有安装 java packa
  • NGINX + Let's encrypt免费SSL证书

    安装与配置过程不算复杂 xff1a 1 安装openssl和certbot sudo apt get install openssl ssl cert sudo apt get install python certbot nginx t
  • Emacs必修:使用dired管理文件

    1 基本设置 require 39 dired require 39 dired 43 require 39 dired sort ido mode 1 global dired hide details mode 1 setq dired
  • Emacs必修:缓冲区与ibuffer

    如果不太较真 xff0c 缓冲区可以当作是Emacs打开的文件 缓冲区操作就是对打开的文件进行保存 关闭和切换等操作 1 使用ibuffer代替list buffers defalias 39 list buffers 39 ibuffer
  • VNC+SSH的配置与使用(Debian xfce4)

    服务器端设置 安装vncserver xff1a sudo apt get install tightvncserver 配置桌面启动脚本文件 vnc xstartup xff0c 文件不存在则新建 xff0c 内容如下 xff1a bin