FTP服务与SSH远程管理

2023-05-16

目录

目录

FTP概述

FTP作用与工作原理

实验

设置用户模式登录

SSH 

ssh概述

SSH密钥机制

ssh实验



FTP概述

FTP(File TransferProtocol,文件传输协议)是典型的C/S架构的应用层协议,需要由服务端软件、客户端软件两个部分共同实现文件传输功能。FTP客户端和服务器之间的连接是可靠的,面向连接的,为数据的传输提供了可靠的保证。
TCP协议:20,21端口

20端口:用于传输数据
21端口:用于传输指令(建立连接)

FTP是一种文件传输协议,它支持两种模式,一种方式叫做Standard(也就是Active,主动方式),一种是 Passive(也就是PASV被动方式)。

Standard模式FTP的客户端发送PORT命令到FTP server。Passive模式FTP的客户端发送 PASV命令到FTP Server

FTP作用与工作原理

FTP的作用:

Internet 上用来远程传送文件的协议。

FTP的模式:

vsftp全称(very secure FTP)

vsftp模式:c/s模式

FTP服务器默认使用TCP协议的20、21端口与客户端进行通信:

20端口用于建立数据连接,并传输文件数据

21端口用于建立控制连接,并传输FTP控制命令

FTP工作原理与流程

FTP数据连接分为主动模式和被动模式

主动模式:服务器主动发起数据连接

被动模式:服务器被动等待数据连接

实验

首先关闭防火墙

安装vsftpd

打开ftp服务

然后进入vsftpd将vsftpd.conf文件备份一下

然后vim /etc/vsftpd/vsftpd.conf进行编写

写入:

anon_upload_enable=YES:允许匿名用户上传文件

anon_mkdir_write_enable=YES:允许匿名用户创建(上传)目录

anon_other_write_enable=YES:允许删除,重命名,覆盖等操作

且保证anonymous_enable=YES:开启匿名访问(默认开启)

write_enable=YES:开放服务器的写权限(默认开启)

local_umask=022:设置匿名用户上传数据的权限掩码

为匿名访问ftp的根目录下的pub子目录设置最大权限 以便匿名用户上传数据,然后重启ftp服务

进入/var/ftp/pub创建一个新文件1.txt

打开windows,打开命令窗口,连接到ftp 192.168.200.111(虚拟机ip地址)

输入密码,然后进入pub目录,查看有没有1.txt,然后get 1.txt将文件下载到本地

进入文件夹查看一下,创建一个新的2.txt,并写入内容

 

然后再命令窗口输入put 2.txt,将文件取回虚拟机

 

进入虚拟机查看pub目录,并查看内容,成功

 

设置用户模式登录

设置本地用户验证访问ftp,并禁止切换到ftp以外目录(默认登陆的根目录为本地用户的家目录)

vim /etc/vsftpd/vsftpd.conf
local_enable=YES                #启用本地用户
anonymous_enable=NO             #关闭匿名用户访问
write_enable=YES                #开放服务器的写权限(若要上传必须开启)
local_umask=077                 #可设置仅宿主目录用户拥有被上传的文件的权限(反掩码)
chroot_local_user=YES           #将访问禁锢在用户的宿主目录中
allow_writeable_chroot=YES      #允许被限制的用户主目录下具有写权限
 
#anon_mkdir_write_enable=YES    注释
#anon_other_write_enable=YES    注释
 
systemctl restart vsftpd        #重启服务

创建新用户fang,并给予权限,设置好宿主目录

 进入windows,连接ftp,登录fang用户,然后取回1.txt和2.txt

进入fang宿主目录查看,成功

SSH 

ssh概述

SSH (Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程复制等功能。

SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令。因此SSt协议具有很好的安全性。

SSH客户端------------------------------>SSH服务器

            数据传输是加密的,可以防止信息泄露

            数据传输是压缩的,可以提高传输速度

SSH客户端:Putty,xshell,CRT

SSH服务端:openSSH

c/s架构

OpenSSH是实现sSH协议的开源软件项目,适用于各种UNTX、Linux操作系统

Centos 7系统默认已安装openssh相关软件包,并已将sshd 服务添加为开机白启动。执行"systemctl start sshd"命令即可启动sshd服务

sshd服务使用的默认端口号为22

sshd服务的默认配置文件是/etc / ssh/ sshd_config

ssh_config和sshd_config都是ssh服务器的配置文件,二者区别在于前者是针对客户端的配置文件,后者则是针对服务端的配置文件。

SSH密钥机制

对称加密(也称为秘钥加密)

使用同一套密钥加密

1.远程Server收到Client端用户TopGun的登录请求,Server把自己的公钥发给用户。

2.Client使用这个公钥,将密码进行加密。

3.Client将加密的密码发送给Server端。

4.远程Server用自己的私钥,解密登录密码,然后验证其合法性。

5.若验证结果,给Client相应的响应。

ssh实验

ssh-keygen -t rsa    生成密钥

ssh-copy-id root@192.168.100.150  将密钥推送给目标用户

ssh登录一下,然后ifconfig查看一下是否成功过去了

scp远程复制

scp root@192.168.100.150:/opt/decade /mnt/    把192.168.100.150主机的一个目录复制过来

这边一开始报错,not a regular file是因为scp没有加上参数r导致

后面改成scp -r root@192.168.100.150:/opt/decade /mnt/ 即成功

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

FTP服务与SSH远程管理 的相关文章

  • gitosis 要求输入密码

    我已经按照以下说明设置了 gitosis 服务器here http scie nti st 2007 11 14 hosting git repositories the easy and secure way 它对于初始用户来说效果很好
  • 如何使用java按上次更新时间对SFTP文件进行排序?

    I am having a set of text files in my FTP server 我想阅读今天之前上传的所有文件 其中我必须打印最后三个上传文件的属性 名称 上传时间 大小 现在我将能够打印 FTP 服务器中存在的文件的名称
  • 如何让SSH命令执行超时

    我有一个这样的程序 ssh q email protected cdn cgi l email protection exit echo output value gt 在上面的代码中 我尝试通过 SSH 连接到远程服务器 并尝试检查是否可
  • 健全性检查 SSH 公钥? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我已要求用户提供他们的公共 id rsa pub ssh 密钥 然后将其放入 home theiraccount ssh authorized key
  • Capistrano 和 GitHub Private Repo – 权限被拒绝(公钥)

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

    作为一个小型 大型 业余爱好项目 我开始用 C 制作一个 非常原始的 ssh 2 0 客户端 这是为了探索和更好地理解 DH 并帮助加深我对加密的熟悉程度 根据 RFC 4253 我已经开始这样的初始连接 省略不相关的变量预设等 Rando
  • 如何在 Python Paramiko 中配置 ssh StrictHostKeyChecking=no 的等效项

    我正在使用 Paramiko 通过 Python 脚本进行 sshing 我的ssh命令如下 ssh A o strictHostKeyChecking no
  • gitlab runner ssh私钥644文件权限错误

    运行 gitlab ci cd 管道时 ssh 给出 0644 badpermission 错误 变量作为文件类型存储在 gitlab 的 settings gt variable 部分中 gitlab ci yml 文件如下所示 stag
  • 向 FTP 服务器执行跨域 XMLHTTPREQUEST 的语法是什么?

    我有一个 webDav CORS 插件 可以使用它在 webDav 服务器上 POST PUT GET REMOVE ALLDOCS 文件 我现在想对 FTP 做同样的事情 但我正在努力获取xmlhttprequest 工作语法 我只是收到
  • 通过 SSH 将变量传递给远程脚本

    我正在通过 SSH 从本地服务器在远程服务器上运行脚本 首先使用 SCP 复制该脚本 然后在传递一些参数时调用该脚本 如下所示 scp path to script server example org another path ssh s
  • 如何在两个不同帐户之间设置无密码身份验证

    我们可以在两台机器的两种不同用途之间设置无密码身份验证吗 例如 计算机A有用户A 计算机B有用户B 我们可以设置密码 ssh 以便计算机 A 上的用户 A 使用其用户帐户 A 登录计算机 B 谢谢你 如果我理解你的问题 你能设置一下吗ssh
  • Mac OS X 中 Bash 脚本中的 SFTP 命令

    我需要使用 SFTP 和 SSH 从 Mac 主机将文本文件传输到远程 PC freeSSH 这两个连接在本地网络中 那么有没有办法从 Bash 脚本内部运行 SFTP 命令 使用提供的用户名和密码 我已经尝试过一些脚本expect 但我没
  • Paramiko ValueError“p 的长度必须恰好为 1024、2048 或 3072 位”

    我正在尝试使用 Python 脚本连接 SFTP 由于 p 错误 我无法连接 import paramiko client paramiko SSHClient client load system host keys client con
  • 通过 SSH 的 Pygame 不注册击键(Raspberry Pi 3)

    所以我得到了 raspi 3 和简单的 8x8 LED 矩阵 在玩了一些之后 我决定用 pygame 的事件制作一个简单的蛇游戏 显示在该矩阵上 我之前没有 pygame 的经验 除了 LED 矩阵之外 没有连接任何屏幕 显示器 所以最初的
  • 如何在 PowerShell 中比较本地文件与 FTP 服务器上的文件的年龄并下载远程复制是否较新

    我正在编写一个 PowerShell 脚本 以帮助我为工作设置新电脑 希望这不仅仅是我一个人会使用 所以我正在尝试考虑所有事情 我在 FTP 服务器上保存了离线安装程序 java flash reader 等 如果本地副本尚未保存在创建的
  • PHP + FTP删除文件夹中的文件

    我刚刚编写了一个 PHP 脚本 它应该连接到 FTP 并删除特殊文件夹中的所有文件 它看起来像这样 但我不知道需要什么命令来删除文件夹日志中的所有文件 任何想法
  • 将密钥对添加到现有 EC2 实例

    我被给予AWS控制台访问正在运行 2 个实例的帐户 但我无法关闭 在生产中 但是 我想获得对这些实例的 SSH 访问权限 是否可以创建一个新的密钥对并将其应用到实例 以便我可以通过 SSH 访问 获取现有的pem当前无法选择创建实例所用的密
  • 服务器响应 PASV 命令返回的地址与建立 FTP 连接的地址不同

    System Net WebException 服务器响应 PASV 命令返回的地址与建立 FTP 连接的地址不同 在 System Net FtpWebRequest CheckError 在 System Net FtpWebReque
  • 如何检查 FTP 目录是否存在

    寻找通过 FTP 检查给定目录的最佳方法 目前我有以下代码 private bool FtpDirectoryExists string directory string username string password try var r
  • 使用 ChannelExec 的命令未执行 - Jsch

    我正在使用 Jsch 在服务器中创建一个文件并执行一些命令 对于文件创建 它工作正常 但是对于命令执行 则不然 它保持状态 1 仍在处理它 并永远保持该状态 这种情况发生在 shell 执行或我尝试成为 root 时 请按照以下方法操作 p

随机推荐