1.ftp服务器的搭建

  ftp的作用:文件的上传和下载,不允许操作目录,如果想操作目录只能用tar打包。

(1)服务器端:

    ①.输入”sudo apt-get install vsftpd“命令安装vsftpd服务

linux 连接远程hive linux连接远程服务器命令_文件名

    ②.判断vsftpd是否安装成功:在终端窗口输入”sudo service vsftpd restart“命令重启vsftpd服务器,此时若vsftpd处于运行状态,则安装成功。

linux 连接远程hive linux连接远程服务器命令_linux 连接远程hive_02

    ③.新建/home/test 作为用户的主目录。在终端窗口输入”sudo mkdir /home/test” 命令,输入“sudo ls /home/”,若有一个test目录,则用户目录创建成功。(新建test用户并设置密码:在终端输入”sudo useradd -d /home/test -s /bin/bash test”命令,新建用户,输入“sudo passwd test”设置test用户的密码)。

linux 连接远程hive linux连接远程服务器命令_linux 连接远程hive_03

linux 连接远程hive linux连接远程服务器命令_上传_04

    ④.修改配置文件/etc/vsftpd.conf,在终端中输入“sudo vi /etc/vsftpd.conf”命令,打开vsftpd文件,进入插入操作向文件中追加以下代码:

    userlist_deny=NO 

    userlist_enable=YES 

    userlist_file=/etc/allow_users 

    seccomp_sandbox=NO 

    local_enable=YES

    然后保存退出即可。

linux 连接远程hive linux连接远程服务器命令_用户名_05

linux 连接远程hive linux连接远程服务器命令_linux 连接远程hive_06

    ⑤.新建/etc/allow_users文件,在终端输入“sudo vim /etc/allow_users”命令,输入test,保存并退出即完成该文件的创建。(注:要查看/etc/ftpusers中的内容,在终端输入”sudo vim /etc/ftpusers”命令,打开这个文件后,查看是否有test这个用户名,若有,则删除test。因为/etc/ftpusers 记录的是不能访问FTP服务器的清单。)

    

linux 连接远程hive linux连接远程服务器命令_文件名_07

   

linux 连接远程hive linux连接远程服务器命令_linux 连接远程hive_08

    ⑥.重启服务

    (以上部分可以参考视频:https://www.bilibili.com/video/av33660709?p=35

(2)客户端:

    ①.实名用户登录:

        a.首先输入命令:

[-dignv][主机名称或IP地址]

        参数

  •   -d 详细显示指令执行过程,便于排错或分析程序执行的情形。
  •   -i 关闭互动模式,不询问任何问题。
  •   -g 关闭本地主机文件名称支持特殊字符的扩充特性。
  •   -n 不使用自动登陆。
  •   -v 显示指令执行过程。

        (也可以直接输入ftp再输入 open IP地址)

        b.输入用户名(server)

        c.输入密码(server)

        d.文件的上传

            put:上传指定文件put filename [newname]

            send:上传指定文件send filename [newname]
            (filename为上传的本地文件名,newname为上传至FTP服务器上时使用的名字,如果不指定newname,文件将以原名上传。)

        e.文件的下载

            get:下载指定文件get filename [newname]

            (filename为下载的FTP服务器上的文件名,newname为保存在本都计算机上时使用的名字,如果不指定newname,文件将以原名保存。)

      get命令下载的文件将保存在本地计算机的工作目录下。该目录是启动FTP时在盘符C:后显示的目录。如果想修改本地计算机的工作目录,可以使用 lcd 命令。比如:lcd d:\ 表示将工作目录设定为D盘的根目录。

linux 连接远程hive linux连接远程服务器命令_文件名_09

linux 连接远程hive linux连接远程服务器命令_linux 连接远程hive_10

linux 连接远程hive linux连接远程服务器命令_文件名_11

    ②.匿名用户登录

        a.首先输入命令:ftp serverIP

        b.输入用户名(server):anonymous

        c.输入密码(server):直接回车跳过密码的输入

注意:不允许匿名用户在任意目录直接切换,只能在指定的目录范围内工作。需要在ftp服务器上创建一个匿名用户的目录——匿名用户的根目录。(这部分参考视频:https://www.bilibili.com/video/av33660709?p=37

        d.文件的上传:

            put:上传指定文件put filename [newname]

            send:上传指定文件send filename [newname]
            (filename为上传的本地文件名,newname为上传至FTP服务器上时使用的名字,如果不指定newname,文件将以原名上传。)

        e.文件的下载:

            get:下载指定文件get filename [newname]

    ③.ftp实例合集

  • ftp> ascii # 设定以ASCII方式传送文件(缺省值)
  • ftp> bell # 每完成一次文件传送,报警提示.
  • ftp> binary # 设定以二进制方式传送文件.
  • ftp> bye # 终止主机FTP进程,并退出FTP管理方式.
  • ftp> case # 当为ON时,用MGET命令拷贝的文件名到本地机器中,全部转换为小写字母.
  • ftp> cd # 同UNIX的CD命令.
  • ftp> cdup # 返回上一级目录.
  • ftp> chmod # 改变远端主机的文件权限.
  • ftp> close # 终止远端的FTP进程,返回到FTP命令状态, 所有的宏定义都被删除.
  • ftp> delete # 删除远端主机中的文件.
  • ftp> dir [remote-directory] [local-file] # 列出当前远端主机目录中的文件.如果有本地文件,就将结果写至本地文件.
  • ftp> get [remote-file] [local-file] # 从远端主机中传送至本地主机中.
  • ftp> help [command] # 输出命令的解释.
  • ftp> lcd # 改变当前本地主机的工作目录,如果缺省,就转到当前用户的HOME目录.
  • ftp> ls [remote-directory] [local-file] # 同DIR.
  • ftp> macdef # 定义宏命令.
  • ftp> mdelete [remote-files] # 删除一批文件.
  • ftp> mget [remote-files] # 从远端主机接收一批文件至本地主机.
  • ftp> mkdir directory-name # 在远端主机中建立目录.
  • ftp> mput local-files # 将本地主机中一批文件传送至远端主机.
  • ftp> open host [port] # 重新建立一个新的连接.
  • ftp> prompt # 交互提示模式.
  • ftp> put local-file [remote-file] # 将本地一个文件传送至远端主机中.
  • ftp> pwd # 列出当前远端主机目录.
  • ftp> quit # 同BYE.
  • ftp> recv remote-file [local-file] # 同GET.
  • ftp> rename [from] [to] # 改变远端主机中的文件名.
  • ftp> rmdir directory-name # 删除远端主机中的目录.
  • ftp> send local-file [remote-file] # 同PUT.
  • ftp> status # 显示当前FTP的状态.
  • ftp> system # 显示远端主机系统类型.
  • ftp> user user-name [password] [account] # 重新以别的用户名登录远端主机.
  • ftp> ? [command] # 同HELP. [command]指定需要帮助的命令名称。如果没有指定 command,ftp 将显示全部命令的列表。
  • ftp> ! # 从 ftp 子系统退出到外壳。

    关闭FTP连接:

    ftp> bye
    ftp> exit
    ftp> quit

    下载文件:

    ftp> get readme.txt # 下载 readme.txt 文件
    ftp> mget *.txt # 下载

    上传文件:

    ftp> put /path/readme.txt # 上传 readme.txt 文件
    ftp> mput *.txt # 可以上传多个文件

2.SSH

(1)服务器端: 

    ①.安装SSH:sudo apt-get install openssh-server

可以使用sudo aptitude show openssh-server命令查看SSH是否安装

(这部分参考视频:https://www.bilibili.com/video/av33660709?p=41

(2)客户端:

    ①.远程登录:ssh Username@IP,其中,Username是用户名,IP是远程服务器地址。

ssh命令 是openssh套件中的客户端连接工具,可以给予ssh加密协议实现安全的远程登录服务器。

linux 连接远程hive linux连接远程服务器命令_linux 连接远程hive_12

语法:
ssh(选项)(参数)
选项:

  • -1:强制使用ssh协议版本1;
  • -2:强制使用ssh协议版本2;
  • -4:强制使用IPv4地址;
  • -6:强制使用IPv6地址;
  • -A:开启认证代理连接转发功能;
  • -a:关闭认证代理连接转发功能;
  • -b:使用本机指定地址作为对应连接的源ip地址;
  • -C:请求压缩所有数据;
  • -F:指定ssh指令的配置文件;
  • -f:后台执行ssh指令;
  • -g:允许远程主机连接主机的转发端口;
  • -i:指定身份文件;
  • -l:指定连接远程服务器登录用户名;
  • -N:不执行远程指令;
  • -o:指定配置选项;
  • -p:指定远程服务器上的端口;
  • -q:静默模式;
  • -X:开启X11转发功能;
  • -x:关闭X11转发功能;
  • -y:开启信任X11转发功能。

参数:
远程主机:指定要连接的远程ssh服务器;
指令:要在远程ssh服务器上执行的指令。
实例
# ssh 用户名@远程服务器地址
ssh user1@172.24.210.101

    ②.退出登录:logout

3.SCP

Linux scp命令用于Linux之间复制文件和目录。scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。

语法:
scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
[-l limit] [-o ssh_option] [-P port] [-S program]
[[user@]host1:]file1 [...] [[user@]host2:]file2
简易写法:

scp [可选参数] file_source file_target
参数说明:

  • -1: 强制scp命令使用协议ssh1
  • -2: 强制scp命令使用协议ssh2
  • -4: 强制scp命令只使用IPv4寻址
  • -6: 强制scp命令只使用IPv6寻址
  • -B: 使用批处理模式(传输过程中不询问传输口令或短语)
  • -C: 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
  • -p:保留原文件的修改时间,访问时间和访问权限。
  • -q: 不显示传输进度条。
  • -r: 递归复制整个目录。
  • -v:详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。
  • -c cipher: 以cipher将数据传输进行加密,这个选项将直接传递给ssh。
  • -F ssh_config: 指定一个替代的ssh配置文件,此参数直接传递给ssh。
  • -i identity_file: 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
  • -l limit: 限定用户所能使用的带宽,以Kbit/s为单位。
  • -o ssh_option: 如果习惯于使用ssh_config(5)中的参数传递方式,
  • -P port:注意是大写的P, port是指定数据传输用到的端口号
  • -S program: 指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。

实例:
1、从本地复制到远程

linux 连接远程hive linux连接远程服务器命令_用户名_13

linux 连接远程hive linux连接远程服务器命令_linux 连接远程hive_14

命令格式:

scp local_file remote_username@remote_ip:remote_folder
或者
scp local_file remote_username@remote_ip:remote_file
或者
scp local_file remote_ip:remote_folder
或者
scp local_file remote_ip:remote_file

       第1,2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名,第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名;第2个和第4个会保存在根目录下。

复制目录命令格式:

scp -r local_folder remote_username@remote_ip:remote_folder
或者
scp -r local_folder remote_ip:remote_folder

或者

scp -r remote_username@remote_ip:local_floder remote_floder

      第1个和第3个指定了用户名,命令执行后需要再输入密码;第2个没有指定用户名,命令执行后需要输入用户名和密码;

2、从远程复制到本地

linux 连接远程hive linux连接远程服务器命令_用户名_15


从远程复制到本地,只要将从本地复制到远程的命令的后2个参数调换顺序即可,如下实例

:/home/root/others/music /home/space/music/1.mp3

      scp -r remote_username:/home/root/others/ /home/space/music/

说明:

1.如果远程服务器防火墙有为scp命令设置了指定的端口,我们需要使用 -p 参数来设置命令的端口号,命令格式如下:

#scp命令使用端口号 4588
scp -p 4588 remote@www.w3cschool.cc:/usr/local/sin.sh /home/administrator

2.使用scp命令要确保使用的用户具有可读取远程服务器相应文件的权限,否则scp命令是无法起作用的。

 4.RSH

1.安装rsh和rsh-server,命令如下:

sudo apt-get install rsh-client rsh-server xinetd

linux 连接远程hive linux连接远程服务器命令_linux 连接远程hive_16

2.配置hosts文件,并在里面添加红框和蓝框(红框充当服务机,蓝框充当客户机)的配置:

如果配置文件的权限不够可以使用sudo su命令切换到root用户。

linux 连接远程hive linux连接远程服务器命令_上传_17

linux 连接远程hive linux连接远程服务器命令_用户名_18

3.配置/etc/xinetd.d/rsh、/etc/xinetd.d/rlogin、/etc/xinetd.d/rexec文件并重启服务:

/etc/xinetd.d/rsh

linux 连接远程hive linux连接远程服务器命令_文件名_19

linux 连接远程hive linux连接远程服务器命令_linux 连接远程hive_20

/etc/xinetd.d/rlogin

linux 连接远程hive linux连接远程服务器命令_linux 连接远程hive_21

linux 连接远程hive linux连接远程服务器命令_上传_22

/etc/xinetd.d/rexec

linux 连接远程hive linux连接远程服务器命令_linux 连接远程hive_23

linux 连接远程hive linux连接远程服务器命令_文件名_24

重启服务:

sudo /etc/init.d/xinetd restart

以上步骤需要在客户机和服务机都配置

4.在服务机配置.rhosts文件:

切换到root用户,并在/root目录下创建.rhosts文件,加入如下内容:

linux 连接远程hive linux连接远程服务器命令_用户名_25

linux 连接远程hive linux连接远程服务器命令_用户名_26

此文件用于root用户之间的rsh连接

普通用户的rsh连接还需要配置/etc/hosts.equiv文件

linux 连接远程hive linux连接远程服务器命令_linux 连接远程hive_27

linux 连接远程hive linux连接远程服务器命令_文件名_28

5.在文件/etc/securetty文件添加rsh rlogin rexec

linux 连接远程hive linux连接远程服务器命令_linux 连接远程hive_29

linux 连接远程hive linux连接远程服务器命令_linux 连接远程hive_30

6.重启服务

sudo /etc/init.d/xinetd restart

7.在服务机上连接rsh服务

linux 连接远程hive linux连接远程服务器命令_linux 连接远程hive_31

Linux rsh命令用于远程登入的Shell。rsh(remote shell)提供用户环境,也就是Shell,以便指令能够在指定的远端主机上执行。

语法:
rsh [-dn][-l <用户名称>][主机名称或IP地址][执行指令]
参数说明:

  • -d  使用Socket层级的排错功能。
  • -l<用户名称>  指定要登入远端主机的用户名称。
  • -n  把输入的指令号向代号为/dev/null的特殊外围设备。

实例:
开启rsh服务:

# chkconfig --list //检测rlogin服务是否开启

# chkconfig rsh on //开启rsh服务

# chkconfig -list //检测开启的服务

Ubuntu开启rsh服务:

      # sysv-rc-conf  --list //检测rlogin服务是否开启

      # sysv-rc-conf rsh on //开启rsh服务

      # sysv-rc-conf -list //检测开启的服务

远程命令执行:

# rsh -l hnlinux 192.168.1.88 /bin/ls //远程执行ls命令