
Mi cliente necesitaba un servidor SFTP para compartir archivos, así que creé un servidor SFTP en una máquina Amazon EC2 Ubuntu y agregué diferentes usuarios.
Ahora su necesidad es que cuando el usuario inicie sesión en el servidor sftp, ya sea a través de winscp o algún otro cliente, debería poder ver solo sus propias carpetas en el directorio de inicio, las otras carpetas no deberían ser visibles para ellos. Además, en sus directorios de inicio no deberían ver ningún archivo o carpeta que comience con punto (.).
es posible? por ejemplo, vea el enlace de captura de pantalla a continuación, solo quiero que mi cliente vea/acceda a la carpeta Transcripción, nada más.
Respuesta1
Gracias a todos, finalmente este enlace me ayudó a lograr mi tarea.http://rmtheis.wordpress.com/2011/07/03/setting-up-an-sftp-site-on-amazon-web-services-ec2-creating-an-account-to-share-with-a- tercero-y-restringir-esa-cuenta-para-permitir-solo-sftp/
Este consta de tres partes:
- configurar un sitio sftp en EC2
- creando una nueva cuenta de usuario
- configurar la nueva cuenta de usuario para hacer ftp de solo lectura, sin privilegios ssh
Está destinado a transferir archivos hacia y desde usuarios confiables. Utilizo esto como una solución adecuada para enviar ocasionalmente archivos muy grandes a clientes, usando una instancia EC2 dedicada a esa tarea. Una vez completada la transferencia, cierro o elimino la instancia.
Configure un servidor utilizando Amazon Web Services EC2, eligiendo una imagen de máquina de Amazon (AMI) de Ubuntu. (Puedes encontrar un AMI usando http://cloud.ubuntu.com/ami/. Es posible que desees elegir uno que sea elegible para el nivel gratuito, como ami-1aad5273)
ssh en el servidor:
ssh -i keyfile.pem [email protected]
Instalar vsftpd:
sudo apt-get install vsftpd
Crear un nuevo usuario:
sudo adduser newusername
Utilizando la Consola de administración de AWS, genere un nuevo par de claves para el usuario externo.
Usando puttygen, importe la nueva clave (keyname.pem) y copie su clave pública.
En el servidor, cree el directorio .ssh para el nuevo usuario:
sudo mkdir /home/newusername/.ssh
Pegue la clave pública en
/home/newusername/.ssh/authorized_keys
.Establecer permisos:
sudo chmod 700 /home/newusername/.ssh
sudo chmod 600 /home/newusername/.ssh/authorized_keys
sudo chown -R newusername:newusername /home/newusername/.ssh
Pruebe el inicio de sesión sftp del nuevo usuario desde su máquina local:
sftp -o IdentityFile=newkeypair1.pem
[email protected]
Cree un nuevo grupo para usuarios que deberían limitarse a usar solo sftp:
sudo groupadd sftponly
sudo adduser newusername sftponly
Edite
/etc/ssh/sshd_config
y cambie la línea Subsistema a:
Subsystem sftp internal-sftp
y agregue estas líneas al final de
/etc/ssh/sshd_config
:
Match group sftponly
ChrootDirectory /home/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
Establezca permisos, sin bloquear los archivos necesarios para la autenticación basada en claves de EC2:
sudo chown root:root /home/newusername
sudo chown -R newusername:newusername /home/newusername/.ssh
sudo /etc/init.d/ssh restart
Ahora el nuevo usuario podrá conectarse por sftp, pero no por ssh. Coloque los archivos que desea compartir
/home/newusername
y comparta la clave con el usuario.