¿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 [email protected], contraseña: contraseña1
luego: ssh [email protected], contraseña: contraseña2

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

Nimbuz
fuente
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 [email protected]

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).

Thibault Martin-Lagardette
fuente
Atascado en la contraseña de [email protected]: 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.

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

intente esto en una ventana de terminal
ssh [email protected]
le pedirá su contraseña más tarde
si no sabe qué es un terminal, busque "terminal" en el centro de atención

phunehehe
fuente
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 )

Thibault Martin-Lagardette
fuente
Sí, pero aquí tengo dos inicios de sesión y ninguna información de "servidor".
Si usted tiene [email protected], 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 [email protected]

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.

Joe Casadonte
fuente
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.

Warren Young
fuente
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
[email protected] 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 .

Arjan
fuente
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.

Peter Jenkins
fuente