SFTP build

SFTP build

【Prefacio】

Hace algún tiempo me dijeron que necesitaba construir un sftp para transferir archivos con clientes tob. Aunque no es muy urgente, todavía tengo que sacarlo. He estado ocupado con otros dos proyectos recientemente. Hace algún tiempo, en realidad solo estaba limitado a la comprensión, y no lo construí manualmente.

【Introducción a SFTP】

Ustedes no están familiarizados con FTP. El protocolo de transferencia de archivos, uno de los grupos de protocolos TCP / IP, se utiliza para transferir archivos en ambas direcciones. Acabo de escribir HTTP y HTTPS en tiempo de front-end, entonces ¿FTP y SFTP son iguales? Una cosa relacionada con la seguridad. Sí, lo has adivinado bien, dijo Baidu: el protocolo de transferencia de archivos SSH (inglés: protocolo de transferencia de archivos SSH, también conocido como protocolo de transferencia de archivos secretos, chino: protocolo de transferencia de archivos seguro, inglés: FTP seguro o acrónimo: SFTP) es un dato fluya conexiones que proporcionan acceso a los archivos, transferencia y gestión de los protocolos de transporte de red . Al igual que HTTPS, SFTP también utiliza cifrado y descifrado para garantizar la seguridad de los archivos transmitidos.

Las funciones y parámetros de SFTP y FTP son casi los mismos. Es razonable decir que pertenece al software SSH. No pertenece a su propio demonio. El demonio que utiliza es, por supuesto, SSH. El puerto a través de SSH (predeterminado 22 , Se recomienda modificar a otros puertos) para la conexión y la transferencia de archivos. Por supuesto, debe saber que debido a que el cifrado y el descifrado son necesarios durante el proceso de transmisión, la eficiencia de transmisión natural no es tan buena como FTP, por lo que el método de transmisión a utilizar debe considerarse de acuerdo con la situación real.

[Compilación SFTP]

Este artículo configura el entorno.

Lanzamiento de CentOS Linux 7.6.1810 (Core)

Linux VM171-test-ng_proxy 3.10.0-957.el7.x86_64 # 1 SMP jue 8 de noviembre 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU / Linux

1. Desactive el firewall y otras restricciones. Si está dentro de la empresa y necesita abrirlo al exterior, configure el firewall en la empresa correspondiente. El firewall del servidor, etc., aún debe eliminarse

# 关闭firewalld
systemctl stop firewalld && systemctl disable firewalld

# 临时关闭selinux
setenforce 0

# 配置永久关闭selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

# 清除iptables规则
iptables -t -nat -F
iptables -F

2. Determine la versión de openssh, que debe ser mayor que 4.8pl

[root@VM171-test-ng_proxy ~]# ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017

3. Crear un grupo

sudo groupadd hobby

4. Crear un usuario Aquí, el usuario y el grupo que creé son hobby. Si este usuario es solo para la transferencia de archivos, no se recomienda iniciar sesión aquí. Agregar parámetro -s / sbin / nologin

sudo useradd -g hobby -s /sbin/nologin hobby

5. Configurar contraseña

passwd hobby

6. Cree un directorio para que los usuarios transfieran y establezcan permisos

mkdir -p /chroot/hobby
chmod -R 755 /chroot/hobby

# 如果不允许hobby用户上传,就将/chroot/hobby用户为root
chogrp -R hobby /chroot/hobby

# 如果允许此上传文件,就将此目录用户和组都设置为hobby
chown -R hobby. /chroot/hobby

 

7. Modifique el archivo de configuración sshd_config

sudo vim /etc/ssh/sshd_config

Encuentre la siguiente línea, coméntela, agregue # al comienzo de la línea

# Subsistema sftp / usr / libexec / openssh / sftp-server

Luego agregue las siguientes líneas

Subsystem       sftp    internal-sftp

Match user hobby    
      ChrootDirectory /chroot/hobby
      ForceCommand    internal-sftp

# Match此处填写需要使用sftp的用户组,指定以下行仅仅匹配hobby组中的用户

# ChrootDirectory填写进行文件传输的目录的绝对路径

# ForceCommand表示强制执行内部的sftp,并忽略~/.ssh/rc中的命令

7. Reinicie el servicio ssh

systemctl restart sshd

En este punto, la configuración está completa y la próxima prueba

sftp [email protected]

Tire del archivo del servidor sftp

[Comandos SFTP comunes]

Aquí solo hablaré sobre algunos comandos de uso común

help      顾名思义,用来查看sftp支持哪些命令

pwd      查看SFTP服务器目录

lpwd      查看本地当前目录

ls         查看SFTP服务器当前目录下的文件

lls        查看本地当前目录下的文件

put file   将本地当前目录下的file文件上传至SFTP服务器当前目录下

get file    将SFTP服务器当前目录下的file文件下载到本地当前目录

!command  在本地linux指向command命令,比如!rm file是删除本地linux当前目录下的file文件,因为在sftp>后输入的命令,默认是对SFTP服务器进行操作,所以sftp> rm file是删除SFTP服务器当前目录的file文件

exit    退出

En general, si no recuerda ningún comando, use la ayuda para verificar

113 artículos originales publicados · Me gusta 40 · Visitas 20,000+

Supongo que te gusta

Origin blog.csdn.net/qq_24601199/article/details/105478708
Recomendado
Clasificación