前言

根据实际需求,将ubuntu系统配置为远程服务器供多人使用。

本文主要介绍四个内容:

  • 在ubuntu上创建多个用户
  • 配置ssh服务器(供用户进行ssh远程连接)
  • 配置vncserver (供用户进行远程桌面访问)
  • 配置ftp服务器 (供用户进行ftp上传与下载文件)

创建用户

1. 创建新用户:

sudo useradd -m -s /bin/bash -d /home/username username

2. 添加管理员权限

sudo vim /etc/sudoers

添加内容如下:

username ALL=(ALL:ALL) ALL

3. 设置密码
输入:

sudo passwd username

修改密码。

ssh服务器

1. 配置端口映射
ssh服务器默认使用22号端口,因为这里我用了一个路由器,因此在路由器的虚拟服务器功能里面添加了一个端口映射,将内部的22号端口映射为5002号端口。

2. 配置ssh服务器

  • 安装openssh-server
sudo apt-get update
sudo apt-get install openssh-server

打开”终端窗口”,输入sudo ps -e |grep ssh–>回车–>有sshd,说明ssh服务已经启动。如果没有启动,输入sudo service ssh start–>回车–>ssh服务就会启动

  • 进入到/etc/ssh/sshd_config修改配置文件
    将PermitRootLogin 设置为yes,如下图所示:

  • 重启ssh服务器

sudo service ssh restart
  • 完成
    通过ssh username@ip -port 5002即可进入(这里将内部22号端口映射到5002号端口)

vncserver

  • 安装vnc4server
sudo apt-get install vnc4server

输入vncserver启动服务,初次启动需要设置密码,如下:

  • 编辑生成的xstartup文件,如下:
#!/bin/sh# Uncomment the following two lines for normal desktop:
#如果出现灰屏鼠标变X的情况将下面两行解注释即可,建议解开
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
#x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#x-window-manager &
#下面有两种界面的选择,建议xfce4,因为问题少。
#读者根据需要选择其一,并删除汉字(我也不知道不删除会不会有影响)
#以下是xfce4所需的配置
sesion-manager & xfdesktop & xfce4-panel &
xfce4-menu-plugin &
xfsettingsd &
xfconfd &
xfwm4 &
#以下是gnome所需的一些配置
#dbus-launch gnome-panel &
#dbus-launch gnome-settings-daemon &
#metacity &
#nautilus &
#dbus-launch gnome-terminal &

在图形界面中,一般有gnomexfc4,试了一次gnome发现会有些问题,xfc4问题较少,因此也就不折腾了,上面介绍的是xfc4的配置,爱折腾的朋友可以考虑gnome的界面,这里就不在折腾了,实用为主。

  • 如果选择xfce4,则安装如下软件(建议选这个):
sudo apt-get install xfce4
  • 如果选择gnome,则安装对应组件
sudo apt-get install gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal
  • 完成,打开ubuntu自带的Remmina,输入ip:port,协议选择vnc,即可登录。

注意:实际操作时我们发现xfce4打开的vncviewer终端下TAB键不能自动联想,一种最简单的处理方法如下:选择Applications->Settings->Window Manager->Keyboard->Switch window for same application->Clear
即清除掉某个特定的快捷键即可,如下图:

注意2:如果发现图形界面没有Window Manager,可以按照下面的操作(但较为麻烦,且需要重启电脑):

  1. 编辑下面文件:
~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml
  1. 找到如下属性:
<property name="&lt;Super&gt;Tab" type="string" value="switch_window_key"/>
  1. 修改如下(注意别修改错了):
<property name="&lt;Super&gt;Tab" type="empty"/>
  1. 重启电脑

注意3: 可通过下面的命令修改终端样式:

sudo update-alternatives --config x-terminal-emulator

然后输入对应数字选择Terminal类型

ftp服务器

服务器端配置

  • 安装vsftpd
sudo apt-get install vsftpd
  • 修改/etc/vsftpd.conf.
# Example config file /etc/vsftpd.conf
#
# The default compiled in settings are fairly paranoid. This sample file
# loosens things up a bit, to make the ftp daemon more usable.
# Please see vsftpd.conf.5 for all compiled in defaults.
#
# READ THIS: This example file is NOT an exhaustive list of vsftpd options.
# Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's
# capabilities.
#
#
# Run standalone?  vsftpd can run either from an inetd or as a standalone
# daemon started from an initscript.
listen=NO
#
# This directive enables listening on IPv6 sockets. By default, listening
# on the IPv6 "any" address (::) will accept connections from both IPv6
# and IPv4 clients. It is not necessary to listen on *both* IPv4 and IPv6
# sockets. If you want that (perhaps because you want to listen on specific
# addresses) then you must run two copies of vsftpd with two configuration
# files.
listen_ipv6=YES
#
# Allow anonymous FTP? (Disabled by default).
anonymous_enable=NO
#
# Uncomment this to allow local users to log in.
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
write_enable=YES
#
# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
#local_umask=022
#
# Uncomment this to allow the anonymous FTP user to upload files. This only
# has an effect if the above global write enable is activated. Also, you will
# obviously need to create a directory writable by the FTP user.
#anon_upload_enable=YES
#
# Uncomment this if you want the anonymous FTP user to be able to create
# new directories.
#anon_mkdir_write_enable=YES
#
# Activate directory messages - messages given to remote users when they
# go into a certain directory.
dirmessage_enable=YES
#
# If enabled, vsftpd will display directory listings with the time
# in  your  local  time  zone.  The default is to display GMT. The
# times returned by the MDTM FTP command are also affected by this
# option.
use_localtime=YES
#
# Activate logging of uploads/downloads.
xferlog_enable=YES
#
# Make sure PORT transfer connections originate from port 20 (ftp-data).
connect_from_port_20=YES
#
# If you want, you can arrange for uploaded anonymous files to be owned by
# a different user. Note! Using "root" for uploaded files is not
# recommended!
#chown_uploads=YES
#chown_username=whoever
#
# You may override where the log file goes if you like. The default is shown
# below.
#xferlog_file=/var/log/vsftpd.log
#
# If you want, you can have your log file in standard ftpd xferlog format.
# Note that the default log file location is /var/log/xferlog in this case.
#xferlog_std_format=YES
#
# You may change the default value for timing out an idle session.
#idle_session_timeout=600
#
# You may change the default value for timing out a data connection.
#data_connection_timeout=120
#
# It is recommended that you define on your system a unique user which the
# ftp server can use as a totally isolated and unprivileged user.
#nopriv_user=ftpsecure
#
# Enable this and the server will recognise asynchronous ABOR requests. Not
# recommended for security (the code is non-trivial). Not enabling it,
# however, may confuse older FTP clients.
#async_abor_enable=YES
#
# By default the server will pretend to allow ASCII mode but in fact ignore
# the request. Turn on the below options to have the server actually do ASCII
# mangling on files when in ASCII mode.
# Beware that on some FTP servers, ASCII support allows a denial of service
# attack (DoS) via the command "SIZE /big/file" in ASCII mode. vsftpd
# predicted this attack and has always been safe, reporting the size of the
# raw file.
# ASCII mangling is a horrible feature of the protocol.
#ascii_upload_enable=YES
#ascii_download_enable=YES
#
# You may fully customise the login banner string:
#ftpd_banner=Welcome to blah FTP service.
#
# You may specify a file of disallowed anonymous e-mail addresses. Apparently
# useful for combatting certain DoS attacks.
#deny_email_enable=YES
# (default follows)
#banned_email_file=/etc/vsftpd.banned_emails
#
# You may restrict local users to their home directories.  See the FAQ for
# the possible risks in this before using chroot_local_user or
# chroot_list_enable below.
#chroot_local_user=YES
#
# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
# (Warning! chroot'ing can be very dangerous. If using chroot, make sure that
# the user does not have write access to the top level directory within the
# chroot)
#chroot_local_user=YES
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd.chroot_list
#
# You may activate the "-R" option to the builtin ls. This is disabled by
# default to avoid remote users being able to cause excessive I/O on large
# sites. However, some broken FTP clients such as "ncftp" and "mirror" assume
# the presence of the "-R" option, so there is a strong case for enabling it.
#ls_recurse_enable=YES
#
# Customization
#
# Some of vsftpd's settings don't fit the filesystem layout by
# default.
#
# This option should be the name of a directory which is empty.  Also, the
# directory should not be writable by the ftp user. This directory is used
# as a secure chroot() jail at times vsftpd does not require filesystem
# access.
secure_chroot_dir=/var/run/vsftpd/empty
#
# This string is the name of the PAM service vsftpd will use.
pam_service_name=vsftpd
#
# This option specifies the location of the RSA certificate to use for SSL
# encrypted connections.
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO#
# Uncomment this to indicate that vsftpd use a utf8 filesystem.
#utf8_filesystem=YES
local_root=/home/username

部分参数说明:

  • anonymous_enable=NO 拒绝匿名登陆
  • write_enable=YES 设置可以上传文件,这个设置看需要个人需要
  • xferlog_enable=YES 开启日志记录
  • xferlog_file=/var/log/vsftpd.log 设置日志文件路径
  • xferlog_std_format=YES 设置日志格式为标准输出
  • connect_from_port_20=YES 绑定20端口
  • ftpd_banner=Welcome to FTP service. 欢迎语句,在使用shell时可以看到
  • chroot_local_user=YES
  • chroot_list_enable=YES
  • chroot_list_file=/etc/vsftpd.chroot_list
    上面的这几个配置实现的功能是:用户被限制在自己的主目录下。用户名单来源于/etc/vsftpd.chroot_list
  • user_sub_token=$USER
  • local_root=/home/$USER/ftp
    添加一个user_sub_token ,以便插入用户名在我们local_root directory路径,以便我们的配置将为该用户,并可能被添加任何未来的用户
  • pam_service_name=ftp原配置中为vsftpd,ubuntu用户需要更改成ftp
  • 开启或者重启vsftpd
    开启: service vsftpd start
    重启: service vsftpd restart

客户端配置

  • 下载filezilla
sudo apt-get install filezilla
  • 配置用户信息
    打开filezilla,点击左上角site manager, 输入ip,端口,用户名等信息。
    Protocol 选择SFTP

总结

本文主要介绍了如何在ubuntu16.04上添加新用户,并配置ssh,vncviewer以及ftp服务器。

参考资料

  • ubuntu 16.04 搭建ftp服务器
  • Ubuntu添加新用户,并创建管理员权限
  • ubuntu系统下配置VNC服务操作步骤(VNCserver)
  • Ubuntu如何安装vncserve
  • Ubuntu 14.04远程登录服务器–ssh的安装和配置

ubuntu 16.04: 配置ssh, vnc, ftp远程相关推荐

  1. 阿里云服务器[Ubuntu 20.04]配置MySQL并实现远程连接

    阿里云服务器[Ubuntu 20.04]配置MySQL并实现远程连接 一次小小的尝试 操作系统与使用软件 连接云服务器 云服务器下载MySQL 更新MySQL用户权限 修改阿里云安全组 修改系统中配置 ...

  2. ubuntu 16.04 mysql5.7.17 开放远程3306端口

    ubuntu 16.04 mysql5.7.17 开放远程3306端口 原创 2017年01月19日 20:33:27 标签: mysql / ubuntu 2644 开启mysql的远程访问权限 默 ...

  3. linux nginx 配置端口访问,Linux入门教程:ubuntu 16.04配置nginx服务器实现一个IP一个端口多个站点,ubuntunginxNginx 使用异步...

    Linux入门教程:ubuntu 16.04配置nginx服务器实现一个IP一个端口多个站点,ubuntunginxNginx 使用异步 特点: Nginx 可以部署在网络上使用 FastCGI,脚本 ...

  4. Ubuntu 16.04配置CUDA 9.0+cudnn 7.0以及解决Nvidia显卡导致黑屏问题

    Ubuntu 16.04配置CUDA 9.0+cudnn 7.0以及解决Nvidia显卡导致黑屏问题 参考文章: (1)Ubuntu 16.04配置CUDA 9.0+cudnn 7.0以及解决Nvid ...

  5. Ubuntu下VScode配置ssh免密远程登录

    一 实现步骤 1.在本机与远程服务器上, 输入ssh-keygen -t rsa,然后连续回车直到结束 2.在本机上执行命令 ssh-copy-id 命令 (1).命令介绍 ssh-copy-id命令 ...

  6. Ubuntu 16.04 配置固定IP地址

    1. 查看网卡设备名称 ifconfig 2. 修改network/interfaces sudo vi /etc/network/interfaces vim操作参看Linux(Ubuntu)下Vi ...

  7. ubuntu 16.04 配置Python2.7 和 Python3.5 同时调用OpenCV

    安装OpenCV OpenCV 官网,下载见 SourceForge and GitHub. 若使用官网版本安装不成功,则可试试Github版本. 或者 git clone https://githu ...

  8. ubuntu 16.04配置嵌入式linux开发环境出现Unable to locate package lib32bz2-1.0

    问题描述:Ubuntu16 64位安装android studio的32位库 sudo apt-get install lib32bz2-1.0失败 虚拟机上运行ubuntu 16.04 环境 ,打开 ...

  9. Ubuntu 16.04 配置Raft(分布式共识协议)及Maven+Java运行环境

    本文用于在Ubuntu 16.04中配置分布式共识协议 Raft, 运行环境为Java + Maven, 开辟端口为 8051-8080, demon中实际使用端口为8051-8053 Raft软件包 ...

  10. Ubuntu 16.04 配置 multi-agent-emergence-environments 环境

    1 目标 配置 Emergent Tool Use from Multi-Agent Interaction 博客所使用的环境. 2 使用环境 Ubuntu 16.04 + VMware Workst ...

最新文章

  1. 011_Raphael常用方法
  2. MySQL数据库服务器逐渐变慢 该如何分析与解决
  3. https网站引用http路径的js和css失效解决办法
  4. java实现可视化报表_如何在Power BI中记录报表可视化?
  5. vue mint-ui 弹出框
  6. 为什么Redux需要reducer成为“纯函数”
  7. gcc 编译流程分析
  8. 数据结构—树(大纲)
  9. MYSQL存储过程,错误处理机制
  10. html如何消除空格字符串,jquery如何去除字符串的空格
  11. 一步一步学Repast 第二章(把界面显示出来2)
  12. Drools规则引擎入门小demo
  13. AE拓展工具丨自定义工具栏 快速嵌入表达式
  14. Artstudio Pro for mac(绘图和编辑工具)
  15. 双路服务器装mac系统,华硕Z10 C612,双路E5继续折腾调试改机型Macpro终于成功。...
  16. 2019安徽省程序设计竞赛 D.自驾游(最短路)
  17. cesium制作飞机路线图
  18. 杭电oj2111(JAVA
  19. D* Lite路径规划算法
  20. php获取当前周的起止日期,使用PHP实现获取周的起始和结束日期

热门文章

  1. eclipse迅速新建main函数
  2. Python 利用字典实现类似 java switch case 功能
  3. md5加密、Des加密对称可逆加密、RSA非对称可逆加密、https单边验证、银行U盾双边认证...
  4. LeetCode OJ - Longest Substring Without Repeating Characters
  5. CODE Unicode roleName_字符类型数据 人物名子
  6. Vue学习笔记(六)
  7. Htmlunit 使用记录
  8. 面向对象的四个基本特征
  9. python——re模块
  10. 02-JAVA语法基础