GNU/Linux >> Tutoriales Linux >  >> Linux

Nombre de usuario y contraseña en la línea de comandos con sshfs

Canalizando el 'sshfs password' con <<< a -o password_stdin funciona en bash:

sshfs -o password_stdin [email protected]_ip:/home /mnt/backup <<< 'sshfs password'

Según el manual, hay una opción -o password_stdin lo que podría permitir leer la contraseña de la entrada estándar, lo que probablemente sea una redirección. Nunca lo he usado, así que estoy especulando.

Dicho esto, desaconsejo enfáticamente una solución de este tipo que es intrínsecamente insegura.

ssh funciona muy bien con un sistema de claves privadas/públicas. Es simple y seguro. No es necesario ingresar una contraseña o escribirla en claro en un script de shell. Simplemente presione su clave pública en el servidor y podrá conectarse de inmediato.


-o password_stdin no parecen estar funcionando en todos los sistemas, por ejemplo, freeBSD. etc.

También puedes usar expect Intérprete, debería funcionar con sshfs y debería funcionar.

Otra solución sería sshpass , por ejemplo, digamos que está haciendo una copia de seguridad del directorio /var/www

Copia de seguridad:

name=$(date '+%y-%m-%d')
mkdir /backup/$name && tar -czvf /backup/$name/"$name.tar.gz" /var/www

cargando el archivo de respaldo al servidor de respaldo

sshpass -p "your_password" scp -r [email protected]_ip:/home/ /backup/$name

Entonces cargará el directorio con la copia de seguridad de hoy.

Pero aún así, como se dijo anteriormente, la mejor manera (segura y simple) sería usar el par de claves ssh
El único inconveniente sería que tiene que pasar por el proceso de generación de claves una vez en cada servidor que necesita vincular, pero es mejor que mantener una contraseña en formato de texto sin formato en todos los servidores que desea respaldar :),

Generar un par de claves de la manera correcta

  • En servidor local

    ssh-keygen -t rsa
    
  • En servidor remoto

    ssh [email protected]_servers_ip "mkdir -p .ssh"
    
  • Carga de claves públicas generadas en el servidor remoto

    cat ~/.ssh/id_rsa.pub | ssh [email protected]_servers_ip "cat >> ~/.ssh/authorized_keys"
    
  • Establecer permisos en el servidor remoto

    ssh [email protected]_servers_ip "chmod 700 ~/.ssh; chmod 640 ~/.ssh/authorized_keys"
    
  • Iniciar sesión

    ssh [email protected]_servers_ip
    
  • Habilitación del protocolo SSH v2

    elimine el comentario de "Protocolo 2" en /etc/ssh/sshd_config

  • habilitar la autorización de clave pública en sshd

    elimine el comentario "PubkeyAuthentication sí" en /etc/ssh/sshd_config

  • Si StrictModes está establecido en sí en /etc/ssh/sshd_config entonces

    restorecon -Rv ~/.ssh
    

Linux
  1. SSHPass:cómo acceder a un servidor mediante SSH mediante un script sin contraseña (no de forma interactiva)

  2. Cómo conectarse al servidor ssh con plink y cmd y clave pública

  3. Enviar correo desde la línea de comandos con un servidor smtp externo en Linux

  4. Cómo instalar y usar la herramienta de línea de comandos Mosh Linux

  5. Comando sshpass:autenticación de contraseña no interactiva con SSH

Administre cuentas locales con el comando Useradd y Usermod

¿Qué es el comando SSH y cómo usar SSH para conectarse a un servidor remoto?

Cómo pasar la contraseña al comando SSH en Linux

Tunelización y proxy SSH

Cómo monitorear el estado del servidor Linux con herramientas de línea de comandos

Conceptos básicos de la línea de comandos de Linux:trabajar con archivos y directorios