Я пытаюсь сделать что-то довольно необычное (для меня в любом случае) с SSH, и я не могу заставить его работать, надеюсь, вы поможете.
Я хочу установить соединение с удаленным сервером с моего Mac, используя SSH. Все идет нормально. Теперь хитрый момент, когда соединение с удаленным сервером установлено, я хочу инициировать соединение с удаленного сервера BACK на локальный компьютер. Я знаю, сумасшедший. По сути, мне нужно перепрыгнуть через эти обручи, чтобы иметь возможность просматривать удаленный сервер, а затем отправлять информацию о файле обратно на мой локальный компьютер, чтобы он мог обрабатываться приложением на локальном компьютере. Надеюсь, это имеет смысл!
В тот момент, когда я возвращаюсь по SSH на локальную машину, как только я вошел в систему на удаленном сервере, терминал просто будет сидеть на месте, без ошибок, даже с -v.
Я пытаюсь выяснить, куда мне следует звонить, просмотрев выходные данные переменной $ SSH_CLIENT, но у меня стандартное ванильное интернет-соединение (без статического IP-адреса). Я думаю, что это может быть причиной проблемы.
Вещи, которые я установил: я на Mac (OS X 10.6.4), и у меня включен удаленный вход в настройках системы / общий доступ. Если я пытаюсь подключить SSH к моему компьютеру Mac с другого компьютера через локальную сеть, я не могу подключиться без проблем. Если я попытаюсь подключиться по SSH к другому серверу (не к моей локальной машине) с моего удаленного сервера, я смогу подключиться без проблем.
Таким образом, приведенные выше факты заставляют меня думать, что я в отношении брандмауэров и т.д. на локальных и удаленных машинах.
Я уверен, что я, должно быть, здесь упускаю что-то совершенно очевидное, но для жизни я не могу справиться с этим.
Любая помощь, ссылки или общее подталкивание в правильном направлении будет принята с благодарностью!
источник
Ответы:
Если при подключении к вашему локальному устройству вы сможете войти перед тем, как зависнуть, это не ответ. Если вы не зайдете так далеко, вы, вероятно, не вернетесь к своему Mac (либо никуда не денетесь или не включите SSH на шлюзе). Попробуйте обратный туннель (для этого потребуется GatewayPorts, установленный на On в sshd_config на вашем сервере, но я считаю, что это по умолчанию):
you@yourMac$ ssh -R 2000:localhost:22 user@remoteserver
это должно позволить вам подключиться к серверу как обычно, но также открыть туннель, чтобы вы могли подключиться снова порт 2000 (любой порт свыше 1024 должен работать), поэтому
you@yourserver$ ssh -p2000 user@localhost
РЕДАКТИРОВАТЬ: изменил имя хоста на localhost
источник
Доступна ли ваша локальная машина с сервера? Вы можете пинговать это? Я спрашиваю, потому что то, что вы делаете, должно работать, если ваша машина доступна. Ваш сервер находится в Интернете или в локальной сети, в той же подсети?
В любом случае, если вам нужно только отредактировать файл, почему бы вам просто не использовать scp для копирования файла на локальный компьютер? Вы можете использовать ssh для поиска файла на удаленном сервере и, когда у вас есть его путь, введите на локальном компьютере (в другом терминале):
Чтобы положить файл обратно, scp снова переключает пути.
Obs: вам не нужно исходное соединение ssh для использования scp - оно создаст новое
Это выше, если вам нужно получить доступ к нему в терминале. В Linux (и, конечно, на Mac, но я не знаю, как это сделать), вы можете смонтировать удаленное местоположение ssh в Сети и использовать соединение, как вы используете локальный диск (это sftp, и соединение имеет вид:
sftp://user@server:/path/to/mount
и я думаю, это то, что вам нужно, а не подключение к удаленному терминалу, чтобы вы могли редактировать файл напрямую с помощью приложения Mac.источник
Вы также можете посмотреть
sshfs
(вам нужен MacFuse для этого). Это позволяет вам монтировать каталоги на удаленном компьютере и получать к ним доступ, как к обычным папкам на вашем компьютере. Кроме того, вы все равно можетеssh
войти в компьютер и создать / найти нужные файлы. Передача их тогда будет такой же простой, как передача локальных файлов.источник