¿Cómo transferir archivos cuando se dan dos cuentas SSH?


1

Necesito configurar la transferencia de archivos para los cuales he recibido la siguiente información de acceso. Pero no estoy seguro de cómo conectarme, ya que casi nunca he usado SSH. Las instrucciones que recibí son:

Primero: ssh usuario1@dominio1.com, contraseña: contraseña1
luego: ssh usuario2@dominio2.com, contraseña: contraseña2

Estoy en una Mac ¿Qué cliente y configuración debo usar?


1
Para iniciar sesión realmente en el segundo servidor, consulte también "¿Cómo (S) FTP al servidor oculto?" en superuser.com/questions/51783/how-to-sftp-to-hidden-server/… para una solución usando ProxyCommandin .ssh/config.
Arjan

Respuestas:


3

Ok, aparentemente dijiste que el primer servidor es solo un relé, así que usemos un túnel SSH. Esto es lo que puedes hacer en la Terminal:

ssh -N -t -x -L 45454:domain2.com:22 user1@domain1.net

Después de ingresar la contraseña, no verá que suceda nada. (Alternativamente: elimine el -Npara ver realmente el símbolo del sistema de domain1.net.) Y luego, en Transmitir, solicita conectarse a:

Usuario: usuario2

Dominio (servidor): localhost

Puerto: 45454

Protocolo: SFTP (SSH)

Esto normalmente debería permitirle usar Transmitir para conectarse al segundo servidor, a través del relé del primero.

Cuando termine, detenga la transmisión y luego, en la Terminal, presione Ctrl-C para detenerse sshtambién. (O, si comenzó sshsin el -Nparámetro, escriba en exitlugar de usar Ctrl-C).


Atascado en la contraseña de user1@domain1.com: desde los últimos 20 minutos, aunque ingresé el pase correcto;
Nimbuz el

3
No está atascado, probablemente haya iniciado sesión y ahora debería continuar con Transmitir, y cuando haya terminado, presione Ctrl-C en la Terminal para detenerse sshtambién. (O, en la Terminal, presione Ctrl-C para detener su primer intento. Luego intente nuevamente sin -N. Después de ingresar la primera contraseña, verá el símbolo del sistema del primer servidor. Deje eso en paz y haga lo suyo usando Transmitir. Cuando termine, regrese a la Terminal y escriba exit.)
Arjan

Como dijo Arjan, no estás atrapado. Puede agregar el argumento -v para ver que solo está "inactivo". Esto se debe al -Nargumento, que dice "Túnel solamente", por lo que crea el túnel y no hace nada más hasta que salga (lo que destruirá el túnel). Entonces, una vez que se ingresa la contraseña, puede pasar a Transmitir e iniciar sesión :)
Thibault Martin-Lagardette el

Perfecto, trabajado! :)
Nimbuz

4

La razón por la que habrá dos inicios de sesión es que domain2.com estará oculto detrás de domain1.com, y solo será accesible desde dentro. Esto a menudo se hace por razones de seguridad, o simplemente porque domain2.com está en una parte diferente de la red a la que no se puede acceder desde el exterior.


1
Buena deducción, Sherlock! :-)
Arjan

3

intente esto en una ventana de terminal
ssh username@domain.com
le pedirá su contraseña más tarde
si no sabe qué es un terminal, busque "terminal" en el centro de atención


Para su información, el foco está en la esquina superior derecha de la pantalla, con un ícono de búsqueda :)
phunehehe

He usado terminales varias veces, pero no sé por qué dos inicios de sesión.

Esta pregunta trata sobre la transferencia de archivos a través de otro sistema. a <- b <- c
Peter Jenkins

2

Depende de lo que necesite hacer en estas máquinas. Usualmente, la mejor manera es usar la línea de comando . Para hacer eso, simplemente abra Terminal (/Applications/Utilities/Terminal.app), donde podrá ingresar estos comandos.

Si lo único que necesita hacer es copiar archivos, puede usar Cyberduck o Transmitir . Es un cliente FTP, pero puede usar el modo SFTP , que será una especie de FTP sobre SSH :). (Es posible que todos los servidores no admitan este modo, en cuyo caso deberá usar el comando scp )


Sí, pero aquí tengo dos inicios de sesión y ninguna información de "servidor".

Si usted tiene user1@domain1.com, su nombre de usuario es user1y su servidor esdomain1.com
Mateo Scharley

@Nimbuz: El "servidor" es la parte después de la @. Esto significa que tendría: Servidor: dominio1.com, Usuario: usuario1, Contraseña: contraseña1

Gracias, puedo pasar el primer inicio de sesión, pero el directorio está vacío ya que es solo un relé. ¿Dónde uso la segunda información de inicio de sesión?

Si uso la segunda información de inicio de sesión directamente en 'Transmitir', lo intenta durante un par de minutos y devuelve "Permiso denegado"

2

Desde una perspectiva puramente de línea de comando, haría algo como esto:

En la ventana de terminal # 1:

$ ssh -L 2122:domain2.com:22 user1@domain1.com

ingrese la contraseña cuando se le solicite (contraseña1). En la ventana de terminal # 2:

$ scp -P 2122 -o HostKeyAlias=domain2.com user2@localhost:/path/to/remote/file /local/file

ingresar la contraseña cuando se le solicite (contraseña2).

El número de puerto 2122 puede ser cualquier cosa que desee (por encima de 1024 y por debajo, sea cual sea el número de puerto máximo). El número de puerto 22 no debe cambiarse.

HostKeyAlias ​​está configurado para que el nombre del host se pueda buscar correctamente en el archivo known_hosts.


El ejemplo de scp no está claro, pero el resto parece correcto. 1) HostAliasKey debe ser HostKeyAlias, pero debe explicar por qué es necesario / útil o eliminarlo como algo extraño. 2) el destino del archivo es muy poco claro (fácil de leer mal), por lo tanto, muestre un nombre de archivo local explícito o cambie el ejemplo para que local sea source: "scp -P 2122 / file / to / copy user2 @ localhost: / path / to / destination" o "scp -P 2122 user2 @ localhost: / path / to / remotefile ./localfile"
quack

1

Abra la Terminal (en su carpeta Aplicaciones / Utilidades) y escriba los comandos como se indica. OS X viene con un programa SSH.

Hay programas ssh de GUI, pero parece que lo de la línea de comandos va a ser más apropiado para esto, ya que ya le están dando las líneas de comando.


Tengo la aplicación 'Transmitir', ¿puedo usarla? ¿Qué elijo - SFTP?

SFTP es una extensión de SSH que proporciona transferencia de archivos, pero no es en sí SSH. Si todo lo que necesita es la transferencia de archivos, SFTP hace lo que quiere. Si necesita iniciar sesión en el servidor remoto y usar su línea de comando, necesita un programa SSH adecuado, ya sea la línea de comando que viene con OS X o una GUI como Fugu.

Sí, solo necesitaré la transferencia de archivos.

0

Solo si necesita acceder a los archivos con bastante frecuencia y solo se recomienda después de que los procedimientos con Cyberduck o Transmit hayan sido exitosos (para garantizar que sus credenciales y todo estén bien):

Monte los domain2.comrecursos localmente utilizando SSHFS con FUSE para OS X (anteriormente empaquetado en MacFUSE , pero que no admite 10.6 y versiones posteriores).

ssh -L -N 45454: dominio2.com: 22
usuario1@dominio1.com sshfs usuario2 @ localhost: / ~ / project -oport = 45454, follow_symlinks, volname = Project

La segunda línea también se puede hacer a través de una GUI, usando Macfusion , pero luego asegúrese de leer las notas de SSHFS sobre eso .


0

Lo que está tratando de hacer es un truco rápido para un recién llegado a SSH. ¡Varias de las respuestas aquí ni siquiera entienden lo que estás pidiendo!

Encontré esta guía realmente buena para explicar el proceso de conexión a través de otro host. Los diagramas realmente ayudan.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.