2

I need to set up file transfer for which I've received the following access info. But I'm not sure how to connect, having hardly used SSH before. The instructions I got are:

First: ssh user1@domain1.com, password: password1
then: ssh user2@domain2.com, password: password2

I'm on a Mac. What client and settings should I use?

Arjan
  • 31,511
Nimbuz
  • 675

8 Answers8

4

The reason that there will be two logins is that domain2.com will be hidden behind domain1.com, and only accessible from within. This is often done for security reasons, or simply because domain2.com is on a different piece of network not accessible from the outside.

Peter
  • 348
4

Ok, apparently you said the first server is just a relay, so let's use a SSH Tunnel. Here is what you can do in Terminal:

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

After entering the password you will not see anything happen. (Alternatively: remove the -N to actually see the command prompt of domain1.net.) And then in Transmit, you ask to connect to:

User: user2

Domain (server): localhost

Port: 45454

Protocol: SFTP (SSH)

This should normally allow you to use Transmit to connect to the second server, through the relay of the first one.

When done, stop Transmit, and then in Terminal hit Ctrl-C to stop ssh as well. (Or, if you started ssh without the -N parameter, then type exit instead of using Ctrl-C.)

3

try this on a terminal window
ssh username@domain.com
it will ask for your password later
if you don't know what a terminal is, search the spotlight for "terminal"

phunehehe
  • 825
2

It depends on what you need to do on these machines. Ususally, the best way is to use the command line. To do that, you simply open Terminal (/Applications/Utilities/Terminal.app), where you will be able to enter these commands.

If the only thing you need to do is copy files, then you can use Cyberduck or Transmit. It's an FTP client, but you can use the SFTP mode, which will be a sort of FTP over SSH :). (All servers might no support this mode, in which case you will have to use the scp command)

2

From a purely command line perspective, you would do something like this:

In terminal window #1:

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

enter the password when asked (password1). In terminal window #2:

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

entering the password when asked (password2).

The port number 2122 can be anything you'd like (above 1024 and below whatever the max port number is). The port number 22 should not be changed.

HostKeyAlias is set so that the host name can be looked up properly in the known_hosts file.

1

Open Terminal (in your Applications/Utilities folder), and type the commands as given. OS X comes with an SSH program.

There are GUI ssh programs, but the command line stuff seems like it's going to be more appropriate for this, since they're giving you the command lines already.

Warren Young
  • 3,835
0

Only if you need to access the files quite often, and only recommended after the procedures using Cyberduck or Transmit have been successful (to ensure your credentials and all are fine):

Mount the domain2.com resources locally using SSHFS with FUSE for OS X (formerly packaged in MacFUSE, but that does not support 10.6 and up).

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

The second line can also be done through a GUI, using Macfusion, but then be sure to read the SSHFS notes about that.

Arjan
  • 31,511
0

What you are tying to do is quick tricky for a newcomer to SSH. Several of the answers here don't even understand what you are asking for!

I've found this guide really good to explain the process of connecting via another host. The diagrams really help.