Solución 1:
Siempre puedes hacer esto:
ssh [email protected] ls -l /some/directory
Eso enviará SSH al host, ejecutará ls, devolverá la salida e inmediatamente se desconectará.
Solución 2:
Para listar todos los archivos en un directorio:
rsync host.name.com:directory/path/'*'
Para algo como buscar directorio/ruta -ls
rsync -r host.name.com:directory/path
Solución 3:
Para todos los que vienen a través de Google a esta pregunta porque están buscando una forma de listar archivos remotos pero no pueden acceder al servidor remoto a través de ssh (caso común para servidores de respaldo), podría usar 'sftp'.
Ejemplo:
sftp [email protected]
ls
cd somedir
exit
Inicie una sesión interactiva en un directorio remoto específico:
sftp [[email protected]]host[:dir]
Solución 4:
Sí. SSH y haz un ls
:
ssh host ls /path
Puede escribir esto fácilmente para que sea más flexible, o usar la sintaxis host:path scp
usos.
Solución 5:
Las respuestas anteriores no contemplan cuándo necesita agregar una contraseña. Para incluir contraseña y nombre de usuario en un solo comando, instale sshpass
.
Para mac:$ brew install hudochenkov/sshpass/sshpass
Para Linux:sudo apt-get install sshpass -y
Entonces:
$ sshpass -p your_password ssh [email protected] ls /path/to/dir/
También puede guardar la salida:
$ sshpass -p your_password ssh [email protected] ls /path/to/dir/ > log.txt
En python3:
import subprocess
cluster_login_email = '[email protected]'
cluster_login_password = 'your_password'
path_to_files = '/path/to/dir/'
response = subprocess.run([
'sshpass', '-p', cluster_login_password, 'ssh', cluster_login_email, 'ls',
path_to_files], capture_output=True)
response = response.stdout.decode("utf-8").split('\n')