Как передавать файлы при наличии двух учетных записей SSH?

3276
Nimbuz

Мне нужно настроить передачу файлов, для которых я получил следующую информацию о доступе. Но я не уверен, как подключиться, едва использовав SSH раньше. Инструкции, которые я получил:

Сначала: ssh user1@domain1.com, пароль: password1,
затем: ssh user2@domain2.com, пароль: password2

Я на Mac. Какой клиент и настройки я должен использовать?

1
Чтобы фактически войти на второй сервер, см. Также «Как (S) FTP на скрытый сервер?» на http://superuser.com/questions/51783/how-to-sftp-to-hidden-server/51790#51790 для решения с использованием `ProxyCommand` в` .ssh / config`. Arjan 14 лет назад 1

8 ответов на вопрос

4
Peter

Причиной того, что будет два входа, является то, что domain2.com будет скрыт за domain1.com и доступен только изнутри. Это часто делается из соображений безопасности или просто потому, что domain2.com находится в другой части сети, недоступной извне.

Хороший вывод, Шерлок! :-) Arjan 14 лет назад 1
3
phunehehe

попробуйте это в окне терминала
ssh username@domain.com,
он запросит ваш пароль позже,
если вы не знаете, что такое терминал, найдите в центре внимания «терминал»

К вашему сведению, прожектор находится в правом верхнем углу экрана со значком поиска :) phunehehe 14 лет назад 0
Я использовал терминал много раз, просто не знаю, почему два входа. 14 лет назад 0
Этот вопрос касается передачи файлов через другую систему. a <- b <- c Peter Jenkins 11 лет назад 0
3
Thibault Martin-Lagardette

Хорошо, по-видимому, вы сказали, что первый сервер - это просто ретранслятор, поэтому давайте использовать SSH Tunnel. Вот что вы можете сделать в Терминале:

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

После ввода пароля вы ничего не увидите. (В качестве альтернативы: удалите, -Nчтобы фактически увидеть командную строку domain1.net.) А затем в Transmit вы просите подключиться к:

Пользователь: user2

Домен (сервер): localhost

Порт: 45454

Протокол: SFTP (SSH)

Обычно это позволяет вам использовать Transmit для подключения ко второму серверу через ретранслятор первого.

Когда закончите, остановите Transmit, а затем в терминале нажмите Ctrl-C, чтобы остановить ssh. (Или, если вы начали sshбез -Nпараметра, введите exitвместо использования Ctrl-C.)

Застрял в пароле user1@domain1.com: с последних 20 минут, хотя я ввел правильный проход; Nimbuz 14 лет назад 0
Вы не застряли, вы, вероятно, вошли в систему, и теперь должны продолжить с Transmit, а когда закончите, нажмите Ctrl-C в Terminal, чтобы также остановить `ssh`. (Или в Терминале нажмите Ctrl-C, чтобы остановить первую попытку. Затем повторите попытку без `-N`. После ввода первого пароля вы увидите командную строку первого сервера. Оставьте это в покое и выполните с помощью Transmit. Когда закончите, вернитесь в терминал и наберите `exit`.) Arjan 14 лет назад 3
As Arjan stated, you're not stuck. You can add the -v argument to see that it is just "idling". This is due to the `-N` argument, that says "Tunnel only", so it creates the tunnel, and do nothing else, until you quit (which will destroy the tunnel). So once the password is entered, you can just go over Transmit and login :) Thibault Martin-Lagardette 14 лет назад 0
Отлично, сработало! :) Nimbuz 14 лет назад 0
2
Thibault Martin-Lagardette

Это зависит от того, что вам нужно сделать на этих машинах. Обычно лучший способ - использовать командную строку . Для этого просто откройте Терминал (/Applications/Utilities/Terminal.app), где вы сможете ввести эти команды.

Если вам нужно только скопировать файлы, вы можете использовать Cyberduck или Transmit . Это FTP-клиент, но вы можете использовать режим SFTP, который будет своего рода FTP через SSH :). (Все серверы могут не поддерживать этот режим, в этом случае вам придется использовать команду scp )

Да, но здесь у меня есть два входа и никакой информации о сервере? 14 лет назад 0
Если у вас есть `user1 @ domain1.com`, ваше имя пользователя` user1` и ваш сервер `domain1.com` Matthew Scharley 14 лет назад 0
@Nimbuz: The "server" is the part after the @. This means you'd have: Server: domain1.com, User: user1, Password: password1 14 лет назад 0
Спасибо, я могу пройти через первый вход в систему, но каталог пуст, так как это просто реле. Где я могу использовать второй логин? 14 лет назад 0
Если я использую вторую информацию для входа непосредственно в «Transmit», она пытается в течение пары минут и возвращает «Permission Denied» 14 лет назад 0
2
Joe Casadonte

С точки зрения командной строки, вы бы сделали что-то вроде этого:

В окне терминала № 1:

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

введите пароль при запросе (password1). В окне терминала № 2:

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

ввод пароля при запросе (password2).

Номер порта 2122 может быть любым (больше 1024 и ниже независимо от максимального номера порта). Номер порта 22 не должен быть изменен.

HostKeyAlias ​​установлен так, чтобы имя хоста можно было правильно искать в файле known_hosts.

The scp example is unclear, but the rest looks right. 1) HostAliasKey should be HostKeyAlias, but you need to explain why it's necessary/useful or remove it as extraneous. 2) file destination is very unclear (easy to misread), so show an explicit local filename or swap the example so local is source: "scp -P 2122 /file/to/copy user2@localhost:/path/to/destination" or "scp -P 2122 user2@localhost:/path/to/remotefile ./localfile" quack quixote 14 лет назад 0
1
Warren Young

Откройте Терминал (в папке «Программы / Утилиты») и введите команды, как указано. OS X поставляется с программой SSH.

Существуют ssh-программы с графическим интерфейсом, но вещи из командной строки, кажется, будут более подходящими для этого, так как они уже дают вам командные строки.

У меня есть приложение «Передача», могу ли я его использовать? Что я выбираю - SFTP? 14 лет назад 0
SFTP is an extension to SSH providing file transfer, but is not itself SSH. If all you need is file transfer, SFTP does what you want. If you need to log into the remote server and use its command line, you need a proper SSH program, either the command-line one that comes with OS X, or a GUI one like Fugu. 14 лет назад 0
Да, мне нужна только передача файлов. 14 лет назад 0
0
Arjan

Только если вам нужен доступ к файлам довольно часто, и рекомендуется только после того, как процедуры, использующие Cyberduck или Transmit, были успешными (чтобы убедиться, что ваши учетные данные и все в порядке):

Монтируйте domain2.comресурсы локально, используя SSHFS с FUSE для OS X (ранее упакованный в MacFUSE, но не поддерживающий 10.6 и выше).

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

Вторую строку можно также выполнить через графический интерфейс, используя Macfusion, но затем обязательно прочтите примечания SSHFS об этом .

0
Peter Jenkins

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.

Похожие вопросы