Ayuda con remote shell
Hola amigo, sucede que probé hacer un rsh a otra maquina sin que me pida password pero no me funciona, lo que hice fue poner en mi maquina un fichero llamado .rhosts en /home/neftali <--- este es mi home y en el puse el nombre de la maquina remota y el usuario, luego en la otra maquina remota por via ftp envie un archivo llamdo del mismo nombre al home de la otra maquina que es /home/guest y en este archivo puse el nombre de mi maquina y el usuario, se supone que con eso puedo ejecutar un remote shell en la otra maquina sin necesidad de logearme pero no funciona, dime por favor como es la manera correcta de hacerlo y si puedes con un ejemplo, gracias y perdona la molestia.
1 Respuesta
Respuesta de fragal
1
1
El comando rsh es:
rsh -l <usuario_remoto> <maq_remota> comando
Mira el man de rsh o el de rhosts.
Yo lo hago sin problemas.
Dime sin te sigue sin salir.
rsh -l <usuario_remoto> <maq_remota> comando
Mira el man de rsh o el de rhosts.
Yo lo hago sin problemas.
Dime sin te sigue sin salir.
Hola, si sigue sin salir, puse los .rhosts en el /home/neftali y el otro en /home/guest, dentro de los cuales puse el nombre de la maquina y el usuario de cada una, es decir en .rhosts puse de /home/neftali puse:
utecnet guest
y en el otro /home/guest puse:
suse neftali
No se si es así como debe ser, luego le doy en el shell de la maquina de suse:
rsh -l guest ip ls
Y me manda un mensaje que dice connection refused y en la maquina de guest hago lo mismo y me dice exactamente lo mismo, entonces que debo hacer, gracias bye.
utecnet guest
y en el otro /home/guest puse:
suse neftali
No se si es así como debe ser, luego le doy en el shell de la maquina de suse:
rsh -l guest ip ls
Y me manda un mensaje que dice connection refused y en la maquina de guest hago lo mismo y me dice exactamente lo mismo, entonces que debo hacer, gracias bye.
Si estás en suse y quieres ejecutar algo en la otra máquina, debes poner:
Rsh -l guest utecnet ls
Siendo utecnet el hostname de la otra máquina.
Prueba y cuéntame.
Rsh -l guest utecnet ls
Siendo utecnet el hostname de la otra máquina.
Prueba y cuéntame.
Si efectivamente así es como lo tecleo en el shell de mi suse pero solo me dice connection refused que puedo hacer.
No se que sucede pero no me ha funcionado, mira te explico lo que he hecho, primero puse el archivo .rhosts en el home de mi maquina dicho archivo contiene el nombre y el usuario de la otra maquina, en el home de la otra maquina puse también el archivo .rhosts con el nombre y usuario de mi maquina, ejecuto en el shell de mi maquina lo siguiente:
rsh -l guest ip(de la otra maquina) ls
Y lo único que recibo es un mensaje que dice connection refused, entonces hago un ping para ver que exista conexión y si hace ping, ya puse el nombre y la ip de la otra maquina en el /etc/hosts de mi maquina, y asimismo lo hice para la otra maquina, vuelvo a teclear el rsh y sigue apareciendo el mismo mensaje, ¿qué más puedo hacer?, por favor si puedes enviame como tienes tu archivo .rhosts, gracias y espero tu respuesta.
rsh -l guest ip(de la otra maquina) ls
Y lo único que recibo es un mensaje que dice connection refused, entonces hago un ping para ver que exista conexión y si hace ping, ya puse el nombre y la ip de la otra maquina en el /etc/hosts de mi maquina, y asimismo lo hice para la otra maquina, vuelvo a teclear el rsh y sigue apareciendo el mismo mensaje, ¿qué más puedo hacer?, por favor si puedes enviame como tienes tu archivo .rhosts, gracias y espero tu respuesta.
¿Se ven las máquinas la una a la otra?
Prueba a hacer un ping de suse a utecnet y viceversa; a ver si el problema es que no se ven ... Si no se viesen, añádelas al /etc/hosts de cada una, con dirección IP y nombre del host.
Prueba también a hacer rsh con la dirección IP en vez del nombre de máquina.
Ya me contarás.
Prueba a hacer un ping de suse a utecnet y viceversa; a ver si el problema es que no se ven ... Si no se viesen, añádelas al /etc/hosts de cada una, con dirección IP y nombre del host.
Prueba también a hacer rsh con la dirección IP en vez del nombre de máquina.
Ya me contarás.
Yo tengo la máquina sldam014 y usuario pcms y por otro lado la máquina sldam017 y usuario pvcstra.
En sldam014, mi .rhosts es:
Sldam017. Lda pvcstra
EN sldam017, mi .rhosts es:
Sldam014. Lda pcms
El .lda añadido es por el dominio en el que están las máquinas. A ver si es por eso por lo que a tí no te funciona !.
A mi, te garantizo que me funciona sin problemas.
En sldam014, mi .rhosts es:
Sldam017. Lda pvcstra
EN sldam017, mi .rhosts es:
Sldam014. Lda pcms
El .lda añadido es por el dominio en el que están las máquinas. A ver si es por eso por lo que a tí no te funciona !.
A mi, te garantizo que me funciona sin problemas.
Hola amigo, oye que crees, esto sigue sin poder hacerse, no se que más tengo que hacer por que ya hice todo lo que me has dicho, mira hice lo siguiente, en cada maquina puse el .rhosts en el home del usuario de cada una respectivamente, y dentro de ellos el nombre de la maquina con el dominio y nombre del usuario, ya cheque si hay comunicación entre las maquinas haciendo un ping y si si la hay, pero al momento de teclear el comando en la consola de este modo:
rsh -l guest 10.16.6.9 hostname
lo unico que recibo en mi maquina es
djd03.dj.cfemex.com: connection refused
Y entonces no puedo, ¿no hay que configurar algo en la otra maquina?, bueno espero tu respuesta nos vemos.
rsh -l guest 10.16.6.9 hostname
lo unico que recibo en mi maquina es
djd03.dj.cfemex.com: connection refused
Y entonces no puedo, ¿no hay que configurar algo en la otra maquina?, bueno espero tu respuesta nos vemos.
Si en el comando rsh pones la IP de la máquina, pon esta dirección IP también en el fichero .rhosts.
O en el comando rsh pon el nombre de la máquina (no la IP) si en .rhosts está el nombre.
Quizá ahí está el problema.
No se me ocurre nada más porque si el ping funciona ...
O en el comando rsh pon el nombre de la máquina (no la IP) si en .rhosts está el nombre.
Quizá ahí está el problema.
No se me ocurre nada más porque si el ping funciona ...
Hola de nuevo, ya te he de tener un poco cansado con este tema, pero bueno disculpa las molestias, ya hice lo que me comentaste en tu ultimo mensaje, pero nada, no se que más puedo hacer por que me sigue saliendo connection refused, no se por que, solo puedo hacer el remote shell hacia una maquina que tiene SCO UNIX open server, pero recuerdo que para poder hacerlo le tuvieron que modificar algo en el setup, la verdad no vi bien que fue lo que se le cambio por que incluso cuando entras a la maquina ya sea por telnet o ftp no escribes contraseña solo el nombre del usuario y te deja entrar, por eso te preguntaba que si no hay que configurar o cambiar algo para que en no pida contraseñas y tan solo con el nombre del usuario se pueda entrar a la maquina, bueno gracias espero tu respuesta.
Ok, gracias por no desesperarte aun je je, bueno en la maquina origen tengo un Linux SuSe 8.1 y en la maquina destino tengo RedHat 9, pero como te mencionaba anteriormente también hay maquinas con UNIX SCO y de suse a SCO si puedo ejejcutar el rsh pero te digo que no se que fue lo que modificaron en el setup, bueno gracias por la ayuda.
Pues no sé qué estará pasando.
Dime exactamente los sistemas operativos que tienes en la máquina origen y destino.
Intentaré reproducir exactamente lo que tú tienes aunque yo sólo dispongo de Solaris, AIX y Linux.
Dime exactamente los sistemas operativos que tienes en la máquina origen y destino.
Intentaré reproducir exactamente lo que tú tienes aunque yo sólo dispongo de Solaris, AIX y Linux.
He preguntado al administrador de aquí (yo no soy administrador; soy "experto" en scripts de UNIX) y me ha comentado que el comando rsh puede buscar por DNS o bien por TCP/IP.
Me ha comentado que pongas en el .rhosts todas las combinaciones posibles:
dirección_ip usuario
Hostname usuario
Hostname. Diminio usuario
Y que estas entradas direccion_ip hostname hostname. diminio las definas también en el fichero /etc/hosts.
Siento no poder ayudarte más.
Me ha comentado que pongas en el .rhosts todas las combinaciones posibles:
dirección_ip usuario
Hostname usuario
Hostname. Diminio usuario
Y que estas entradas direccion_ip hostname hostname. diminio las definas también en el fichero /etc/hosts.
Siento no poder ayudarte más.
Ok, gracias por la ayuda, pero tampoco funciono así, pero te tengo otra pregunta, en caso de que quiera mandar un archivo cada "x" tiempo por vía ftp como hago hacer un script que me permita hacer esto, es decir mandar el archivo vía ftp pero sin que me pida el password ni usuario simplemente que lo envíe, gracias.
Para hacer ftp, necesitas tener un fichero llamado .netrc en tu $HOME con el siguiente formato:
machine <maquina> login <usuario> password <password>
Macdef sendascii
Ascii
put $1 $2
Quit
Macdef sendbin
bin
put $1 $2
Quit
Macdef getascii
Ascii
get $1 $2
Quit
Macdef getbin
bin
get $1 $2
Quit
En la primera línea se define máquina, usuario y password destino del fichero que quieres mandar. Y después como ves hay una serie de párrafos que son macros con un nombre al que le pasas dos parámetros: $1 $2.
Supongamos que quieres llevar el fichero f_1 (que es ASCII, o sea, de texto)a la máquina <maquina>; sería:
echo "\$sendascii f_1 f_1" | ftp -i <maquina>
posicionándote en el subdirectorio en el que esté f_1, lo lleva a $HOME de <maquina>.
Si quieres llevarlo al directorio $HOME/subdir de <maquina>, en el fichero .netrc tendrías que añadir la macro:
macdef cd_sendascii
cd '$1'
ascii
put $2
Quit
Y se invocaría como:
echo "\$cd_sendascii subdir f_1" | ftp -i <maquina>.
Si quieres hacer esto regularmente, lo "croneas" metiéndolo en un crontab.
Prúebalo y me cuentas. Yo lo tengo implementado aquí y me funciona de puta madre.
machine <maquina> login <usuario> password <password>
Macdef sendascii
Ascii
put $1 $2
Quit
Macdef sendbin
bin
put $1 $2
Quit
Macdef getascii
Ascii
get $1 $2
Quit
Macdef getbin
bin
get $1 $2
Quit
En la primera línea se define máquina, usuario y password destino del fichero que quieres mandar. Y después como ves hay una serie de párrafos que son macros con un nombre al que le pasas dos parámetros: $1 $2.
Supongamos que quieres llevar el fichero f_1 (que es ASCII, o sea, de texto)a la máquina <maquina>; sería:
echo "\$sendascii f_1 f_1" | ftp -i <maquina>
posicionándote en el subdirectorio en el que esté f_1, lo lleva a $HOME de <maquina>.
Si quieres llevarlo al directorio $HOME/subdir de <maquina>, en el fichero .netrc tendrías que añadir la macro:
macdef cd_sendascii
cd '$1'
ascii
put $2
Quit
Y se invocaría como:
echo "\$cd_sendascii subdir f_1" | ftp -i <maquina>.
Si quieres hacer esto regularmente, lo "croneas" metiéndolo en un crontab.
Prúebalo y me cuentas. Yo lo tengo implementado aquí y me funciona de puta madre.
Ok, esta bien lo del script que me enviaste, pero mira te explico lo que quiero hacer para no hacer tantos rodeos, estoy haciendo un sistemita de monitoreo de servidores linux, unix y windows, entonces para los servidores linux hice un script que pide unos datos sobre el servidor, ahora lo que quiero es que ese script lo pueda enviar a otra maquina de linux, una ves ahí ejecutarlo y como el resultado lo guarda en un archivo, quiero que ese archivo de texto lo mande de vuelta a mi maquina para así ver los resultados, es por eso que primero te estaba preguntando acerca del remote shell pero no me funciono, y después me habían dicho aquí en donde estoy haciendo mi proyecto que con un socket, pero la verdad no se programar mucho y desconozco como es, pero bien puesto que eres experto me podrías recomendar algo que me facilite lo que pretendo hacer, no se si en shell se pueda hacer un socket o si existe otro método para hacer entrar en la otra maquina, ejecutar el shell script y traerme de vuelta el resultado, como ves, me puedes ayudar, bueno si tienes alguna idea me dices ok, gracias por tu tiempo en verdad te lo agradezco, nos vemos pronto, bye.
Yo tengo hecho un script exactamente como tú quieres: hago un script en l máquina m1, lo mando a la máquina m2, allí lo ejecuta y su salida me la traigo a m1 borrando el script y la salida en m2. Para todo ello uso rsh (ejecución remota) y rcp (copia remota) que a mí sí me funciona.
Con sockets, no tengo ni la más remota idea de cómo hacerlo.
Se me ocurre que el script lo tengas en la máquina m2 y una vez ejecutado desde m2 copies vía ftp la salida que genera dicho script a m1.
Como esto parece "el cuento de nunca cabar", si quieres nos cimunicamos por correo con nuestras direcciones por si tenemos que pasarnos algún fichero. Mi dirección es [email protected]. Si quieres ecríbeme aquí. Yo estoy en horario de oficina de 9 a 18 horas. Estoy en Madrid, España.
Y no te apures: te ayudaré en lo que pueda encantado.
Con sockets, no tengo ni la más remota idea de cómo hacerlo.
Se me ocurre que el script lo tengas en la máquina m2 y una vez ejecutado desde m2 copies vía ftp la salida que genera dicho script a m1.
Como esto parece "el cuento de nunca cabar", si quieres nos cimunicamos por correo con nuestras direcciones por si tenemos que pasarnos algún fichero. Mi dirección es [email protected]. Si quieres ecríbeme aquí. Yo estoy en horario de oficina de 9 a 18 horas. Estoy en Madrid, España.
Y no te apures: te ayudaré en lo que pueda encantado.
Ok, me parece perfecto, en verdad te lo agradezco como no tienes idea, mi dirección de correo es [email protected], y yo vivo en Xalapa Veracruz México, nos vemos y para empezar si puedes enviame el script ok, nos vemos, bye.
- Compartir respuesta
- Anónimo
ahora mismo