Wie werden Dateien übertragen, wenn zwei SSH-Konten vergeben werden?

3633
Nimbuz

Ich muss die Dateiübertragung einrichten, für die ich die folgenden Zugangsdaten erhalten habe. Ich bin mir jedoch nicht sicher, wie ich mich verbinden soll, da ich bisher kaum SSH verwendet habe. Die Anweisungen, die ich bekam, sind:

Zuerst: ssh user1@domain1.com, Passwort: Passwort1,
dann: ssh User2@domain2.com, Passwort: Passwort2

Ich bin auf einem Mac. Welchen Client und welche Einstellungen sollte ich verwenden?

1
Um sich tatsächlich beim zweiten Server anzumelden, siehe auch "Wie wird (S) FTP auf einen ausgeblendeten Server?" unter http://superuser.com/questions/51783/how-to-sftp-to-hidden-server/51790#51790 nach einer Lösung, die `ProxyCommand` in` .ssh / config` verwendet. Arjan vor 14 Jahren 1

8 Antworten auf die Frage

4
Peter

Es gibt zwei Anmeldungen, weil domain2.com hinter domain1.com verborgen ist und nur von innen zugänglich ist. Dies geschieht häufig aus Sicherheitsgründen oder einfach, weil domain2.com sich in einem anderen, von außen nicht zugänglichen Netzwerk befindet.

Guter Abzug, Sherlock! :-) Arjan vor 14 Jahren 1
3
phunehehe

Probieren Sie dies auf einem Terminalfenster aus
ssh username@domain.com.
Sie werden später nach Ihrem Passwort
gefragt, wenn Sie nicht wissen, was ein Terminal ist. Suchen Sie im Spotlight nach "Terminal".

Zu Ihrer Information, das Spotlight befindet sich in der oberen rechten Ecke des Bildschirms mit einem Suchsymbol :) phunehehe vor 14 Jahren 0
Ich habe das Terminal viele Male benutzt, weiß einfach nicht warum zwei Logins. vor 14 Jahren 0
This question is about transferring files via another system. a <- b <- c Peter Jenkins vor 11 Jahren 0
3
Thibault Martin-Lagardette

Ok, anscheinend sagten Sie, der erste Server sei nur ein Relay, also verwenden wir einen SSH-Tunnel. In Terminal können Sie Folgendes tun:

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

Nach der Eingabe des Passworts sehen Sie nichts. (Alternativ: Entfernen Sie das, -Num tatsächlich die Eingabeaufforderung von zu sehen domain1.net.) Und dann in Transmit fragen Sie nach:

Benutzer: user2

Domäne (Server): localhost

Hafen: 45454

Protokoll: SFTP (SSH)

Auf diese Weise können Sie normalerweise Transmit verwenden, um über das Relais des ersten Servers eine Verbindung zum zweiten Server herzustellen.

Wenn Sie damit fertig sind, stoppen Sie Transmit und drücken Sie im Terminal Strg-C, um ebenfalls zu stoppen ssh. (Oder wenn Sie sshohne den -NParameter gestartet haben, geben Sie exitstatt Ctrl-C ein.)

Bei user1@domain1.com das Passwort stecken: seit den letzten 20 Minuten, obwohl ich den korrekten Pass eingegeben habe; Nimbuz vor 14 Jahren 0
Sie stecken nicht fest, Sie sind wahrscheinlich angemeldet und sollten jetzt mit Transmit fortfahren, und wenn Sie fertig sind, drücken Sie Strg-C in Terminal, um `ssh 'ebenfalls zu stoppen. (Oder drücken Sie in Terminal die Tastenkombination Strg-C, um den ersten Versuch zu beenden. Versuchen Sie es dann erneut ohne "-N".) Nachdem Sie das erste Kennwort eingegeben haben, wird die Eingabeaufforderung des ersten Servers angezeigt. Lassen Sie das in Ruhe und machen Sie Ihr Wenn Sie fertig sind, gehen Sie zurück zu Terminal und geben Sie "exit" ein.) Arjan vor 14 Jahren 3
Wie Arjan sagte, du bist nicht festgefahren. Sie können das Argument -v hinzufügen, um zu sehen, dass es nur "im Leerlauf" ist. Dies ist auf das `-N`-Argument zurückzuführen, das" Nur Tunnel "sagt. Es erstellt also den Tunnel und tut nichts anderes, bis Sie den Vorgang beenden (wodurch der Tunnel zerstört wird). Sobald das Passwort eingegeben wurde, können Sie einfach auf Senden klicken und sich anmelden :) Thibault Martin-Lagardette vor 14 Jahren 0
Perfekt, gearbeitet! :) Nimbuz vor 14 Jahren 0
2
Thibault Martin-Lagardette

Es hängt davon ab, was Sie auf diesen Maschinen tun müssen. Normalerweise verwenden Sie am besten die Befehlszeile . Dazu öffnen Sie einfach das Terminal (/Applications/Utilities/Terminal.app), wo Sie diese Befehle eingeben können.

Wenn Sie nur Dateien kopieren müssen, können Sie Cyberduck oder Transmit verwenden . Es ist ein FTP-Client, aber Sie können den SFTP-Modus verwenden, der eine Art FTP über SSH ist :). (Alle Server unterstützen diesen Modus möglicherweise nicht. In diesem Fall müssen Sie den Befehl scp verwenden. )

Ja, aber hier habe ich zwei Logins und keine "Server" Info? vor 14 Jahren 0
Wenn Sie "user1 @ domain1.com" haben, lautet Ihr Benutzername "user1" und Ihr Server ist "domain1.com" Matthew Scharley vor 14 Jahren 0
@Nimbuz: Der "Server" ist der Teil nach dem @. Dies bedeutet, dass Sie Folgendes haben: Server: domain1.com, Benutzer: Benutzer1, Kennwort: Kennwort1 vor 14 Jahren 0
Danke, ich kann den ersten Login passieren, aber das Verzeichnis ist leer, da es nur ein Relay ist. Wo verwende ich die zweite Login-Information? vor 14 Jahren 0
Wenn ich die zweite Login-Information direkt in 'Transmit' verwende, versucht es ein paar Minuten und gibt "Permission Denied" zurück. vor 14 Jahren 0
2
Joe Casadonte

Von einer reinen Befehlszeilenperspektive aus würden Sie so etwas tun:

Im Terminalfenster 1:

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

Geben Sie das Passwort ein, wenn Sie dazu aufgefordert werden (Passwort1). Im Terminalfenster 2:

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

Geben Sie das Passwort ein, wenn Sie dazu aufgefordert werden (Passwort2).

Die Portnummer 2122 kann beliebig sein (über 1024 und darunter, unabhängig von der maximalen Portnummer). Die Portnummer 22 sollte nicht geändert werden.

HostKeyAlias ​​ist so eingestellt, dass der Hostname in der known_hosts-Datei ordnungsgemäß nachgeschlagen werden kann.

Das SCP-Beispiel ist unklar, aber der Rest sieht richtig aus. 1) HostAliasKey sollte HostKeyAlias ​​sein, aber Sie müssen erklären, warum es notwendig / nützlich ist, oder es als überflüssig entfernen. 2) Dateiziel ist sehr unklar (leicht zu lesen), zeigen Sie also einen expliziten lokalen Dateinamen an oder tauschen Sie das Beispiel aus, sodass local als Quelle angegeben ist: oder "scp -P 2122 user2 @ localhost: / path / to / remotefile ./localfile" quack quixote vor 14 Jahren 0
1
Warren Young

Öffnen Sie das Terminal (in Ihrem Ordner Applications / Utilities) und geben Sie die angegebenen Befehle ein. OS X wird mit einem SSH-Programm geliefert.

Es gibt GUI-ssh-Programme, aber das Kommandozeilen-Zeug scheint dafür angemessener zu sein, da sie Ihnen bereits die Kommandozeilen geben.

Ich habe eine "Transmit" -App. Kann ich diese verwenden? Was wähle ich - SFTP? vor 14 Jahren 0
SFTP ist eine Erweiterung zu SSH, die die Dateiübertragung ermöglicht, jedoch nicht selbst SSH. Wenn Sie nur eine Dateiübertragung benötigen, macht SFTP, was Sie wollen. Wenn Sie sich beim Remote-Server anmelden und dessen Befehlszeile verwenden müssen, benötigen Sie ein ordnungsgemäßes SSH-Programm, entweder das mit OS X gelieferte Befehlszeilenprogramm oder ein GUI-Programm wie Fugu. vor 14 Jahren 0
Ja, ich brauche nur eine Dateiübertragung. vor 14 Jahren 0
0
Arjan

Nur wenn Sie häufig auf die Dateien zugreifen müssen und nur empfohlen werden, nachdem die Verfahren mit Cyberduck oder Transmit erfolgreich waren (um sicherzustellen, dass Ihre Anmeldeinformationen und alle in Ordnung sind):

Stellen Sie die domain2.comRessourcen lokal mithilfe von SSHFS mit FUSE für OS X bereit (zuvor in MacFUSE verpackt, dies unterstützt jedoch nicht 10.6 und höher ).

ssh -L -N 45454: domain2.com: 22 user1@domain1.com
sshfs user2 @ localhost: / ~ / project -oport = 45454, follow_symlinks, volname = Projekt

Die zweite Zeile kann auch über eine grafische Benutzeroberfläche mit Macfusion ausgeführt werden. Lesen Sie dazu jedoch die SSHFS-Hinweise .

0
Peter Jenkins

Was Sie damit zu tun haben, ist für einen Neuankömmling bei SSH schnell schwierig. Einige der Antworten hier verstehen nicht einmal, wonach Sie fragen!

Ich fand dieses Handbuch wirklich gut, um den Verbindungsprozess über einen anderen Host zu erklären. Die Diagramme helfen wirklich.