sirven sintaxis que para lineas hat ejemplos comandos comando basicos linux unix networking shell

sintaxis - comandos shell linux



Proporcione una contraseƱa usando la secuencia de comandos Shell (3)

Este script viene en máquinas Debian (y derivados), para distribuir las claves. Se llama ssh-copy-id. Lo usarías así:

ssh-copy-id [-i identity_file] [user@]machine

Luego, debe ingresar la contraseña y se realizará la copia. Lo harías solo una vez y luego podrías usar rsync en ssh como de costumbre.

#!/bin/sh # Shell script to install your identity.pub on a remote machine # Takes the remote machine name as an argument. # Obviously, the remote machine must accept password authentication, # or one of the other keys in your ssh-agent, for this to work. ID_FILE="${HOME}/.ssh/identity.pub" if [ "-i" = "$1" ]; then shift # check if we have 2 parameters left, if so the first is the new ID file if [ -n "$2" ]; then if expr "$1" : ".*/.pub" ; then ID_FILE="$1" else ID_FILE="$1.pub" fi shift # and this should leave $1 as the target name fi else if [ x$SSH_AUTH_SOCK != x ] ; then GET_ID="$GET_ID ssh-add -L" fi fi if [ -z "`eval $GET_ID`" ] && [ -r "${ID_FILE}" ] ; then GET_ID="cat ${ID_FILE}" fi if [ -z "`eval $GET_ID`" ]; then echo "$0: ERROR: No identities found" >&2 exit 1 fi if [ "$#" -lt 1 ] || [ "$1" = "-h" ] || [ "$1" = "--help" ]; then echo "Usage: $0 [-i [identity_file]] [user@]machine" >&2 exit 1 fi { eval "$GET_ID" ; } | ssh $1 "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys" || exit 1 cat <<EOF Now try logging into the machine, with "ssh ''$1''", and check in: .ssh/authorized_keys to make sure we haven''t added extra keys that you weren''t expecting. EOF

Había configurado mis clientes y servidor para el inicio de sesión sin contraseña. Como el inicio de sesión sin contraseña, al copiar la clave RSA del servidor en /root/.ssh/id-rsa.pub de todos los clientes. pero esto, lo he hecho de forma manual. Me gusta automatizar este proceso utilizando script de shell y proporcionando una contraseña a las máquinas mediante script. Si se resuelve este problema, también quiero usar rsync para automatizar los elementos de inserción en todos los servidores. ¿Puede algún cuerpo ayudarme en este sentido?

Gracias


Podría esperar iniciar sesión en una máquina remota cuando el método .ssh/authorized_keys no esté disponible. Por ejemplo:

#!/usr/bin/expect spawn ssh user@remote-host expect "*password: $" send "YOUR PASSWORD HERE/n" send "bash/n" interact


Si necesita insertar actualizaciones / cambios en varias computadoras en una red, le recomendamos considerar algo como Puppet que funciona fuera de los canales normales.