当前位置: 首页 > news >正文

Ubuntu配置ssh+vnc(完整版)

Ubuntu配置ssh+vnc(完整版)

1 配置ssh

1. 安装openssh-server,配置开机自启

# 更新包
sudo apt-get update
# 安装openssh-server
sudo apt-get install -y openssh-server
# 启动服务
sudo service ssh start
# 配置开机自启
sudo systemctl enable ssh

2. 配置ssh允许root登录

# 配置ssh允许root登录,注意配置文件是:sshd_config!!!大家不要改成ssh_config了
vim /etc/ssh/sshd_config

增加如下内容:

PermitRootLogin yes 
PubkeyAuthentication yes
# 可选
PasswordAuthentication yes 

3. 拓展

①修改root密码(sudo passwd root)

sudo passwd root 

② 配置网络dns

## 配置ubuntu dns
sudo vim /etc/resolv.conf
nameserver 114.114.114.114
nameserver 8.8.8.8#重启服务
sudo systemctl restart NetworkManager

③安装ifconfig命令(apt install net-tools)

## ifconfig not found:安装网络工具
apt install net-tools

2 配置vnc

  • 使用远程桌面时, 用户必须在host上登入桌面环境. 可以是锁屏或非锁屏, 但是必须要有一个用户桌面会话存在, 如果用户logout了, 远程桌面就无法连接了
  • 使用VNC时, host上需要启动vncserver. 但是vncserver与用户在host上的桌面会话是不一样的, vncserver会给连接后的用户启动桌面会话

注意:使用VNC需要安装并启动ssh服务

1. 安装XFCE桌面(可选)

安装XFCE桌面. 如果想使用自带的 Ubuntu桌面, 也可以不安装

sudo apt install xfce4 xfce4-goodies

2. 安装vncserver

sudo apt install tigervnc-standalone-server

3. vncserver -localhost no(启动服务)

执行vncserver命令启动服务,但这种方式启动的服务, 默认是只监听本地127.0.0.1, 所以从其它机器是无法连接的, 如果需要连接, 可以加上-localhost no这个配置启动

  • 如果启动失败,可以使用journalctl -fe查看原因
# 启动vncserver服务并允许其他机器连接
vncserver -localhost no
# 过程中系统将提示您输入并确认密码,以及是否将其设置为只读密码。如果选择设置仅查看密码,则用户将无法使用鼠标和键盘与VNC实例进行交互
# 密码文件存储在~/.vnc目录中,如果不存在则创建该目录
# 查看是否有对应服务启动,以及服务端口
vncserver -list

可以看到我下面的服务实例为1,远程暴露端口为5901,接下来用vnc软件,通过ip:5901即可远程操作该机器
在这里插入图片描述

tips:

  • 如果想重新配置vnc,删除.vnc目录,重新执行vncserver -localhost no在这里插入图片描述
  • 关闭刚才的实例, :1根据自己的实例修改
    vncserver -kill :1

4. 添加vnc到系统服务

vim /lib/systemd/system/vncserver.service
[Unit]
Description=Start vnc server at startup
After=network.target[Service]
Type=simple
ExecPre=/usr/sbin/runuser -l root -c "vncserver -kill :1"
ExecStart=/usr/sbin/runuser -l root -c "/usr/bin/vncserver -localhost no :1"
User=root
Group=root
Restart=on-failure[Install]
WantedBy=multi-user.target
# 重新加载服务文件
systemctl daemon-reload
# 配置开机自启并立即启动
systemctl enable --now vncserver

在这里插入图片描述

# 查看是否启动成功
vncserver -list

在这里插入图片描述

5. 配置分辨率(可选)

vim ~/.vnc/configsession=xfce
geometry=1366x768
securitytypes=vncauth,tlsvnc
  • session=xfce 如果前面安装了xfce, 这里可以用xfce, 否则需要改成ubuntu(Desktop版自带桌面)
    能用哪些值, 取决于 /usr/share/xsessions 目录下包含哪些 desktop. 例如使用自带的 Ubuntu桌面, 可以改成 session=ubuntu
  • geometry=1366x768 是开启时的默认分辨率
  • 如果要只允许本地连接, 可以加一行 localhost
# 也可以直接通过命令行配置分辨率
vncserver -geometry 1920x1080 :1 -localhost no

效果:
在这里插入图片描述

3 vnc客户端推荐

  • vncviewer
  • mobaxterm
  • jumpserver

参考文章:https://www.cnblogs.com/milton/p/16730512.html

相关文章:

  • 数据结构:为什么说链表是顺序表的升级版(c语言实现)
  • pgsql给单独数据库制定账号权限
  • Kotlin 中的内联函数
  • AI与音乐:共创未来乐章还是终结艺术的颂歌?
  • Docker容器导出导入
  • Python发送Email的性能怎么样?如何配置?
  • Unity定时(延迟)管理器实现
  • 数据结构-线性表的顺序表示
  • Webstorm vue项目@路径不能跳转到对应资源,提示Cannot find declaration to go to
  • Android记录19-朋友圈动态发布时间计算
  • 事件传播机制 与 责任链模式
  • Matlab 入门学习
  • .net core使用EPPlus设置Excel的页眉和页脚
  • G7易流赋能化工物流,实现安全、环保与效率的共赢
  • Java延迟初始化Logger日志对象
  • 9月CHINA-PUB-OPENDAY技术沙龙——IPHONE
  • 【108天】Java——《Head First Java》笔记(第1-4章)
  • 【RocksDB】TransactionDB源码分析
  • Bytom交易说明(账户管理模式)
  • CSS 提示工具(Tooltip)
  • egg(89)--egg之redis的发布和订阅
  • extjs4学习之配置
  • Intervention/image 图片处理扩展包的安装和使用
  • Python中eval与exec的使用及区别
  • vue-router 实现分析
  • 浮现式设计
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • No resource identifier found for attribute,RxJava之zip操作符
  • 数据库巡检项
  • ​LeetCode解法汇总518. 零钱兑换 II
  • ‌[AI问答] Auto-sklearn‌ 与 scikit-learn 区别
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • #QT(串口助手-界面)
  • ()、[]、{}、(())、[[]]等各种括号的使用
  • (03)光刻——半导体电路的绘制
  • (175)FPGA门控时钟技术
  • (4)Elastix图像配准:3D图像
  • (9)STL算法之逆转旋转
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (delphi11最新学习资料) Object Pascal 学习笔记---第2章第五节(日期和时间)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第2节(共同的基类)
  • (八)Flink Join 连接
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (学习日记)2024.01.09
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • .360、.halo勒索病毒的最新威胁:如何恢复您的数据?
  • .equal()和==的区别 怎样判断字符串为空问题: Illegal invoke-super to void nio.file.AccessDeniedException
  • .mysql secret在哪_MYSQL基本操作(上)
  • .net core 依赖注入的基本用发
  • .Net的C#语言取月份数值对应的MonthName值
  • .NET应用UI框架DevExpress XAF v24.1 - 可用性进一步增强
  • :=
  • @Query中countQuery的介绍
  • [.NET]桃源网络硬盘 v7.4