Как настроить nautilus для использования ssh-соединения, установленного ожидаемым сценарием?


2

Чтобы автоматизировать ssh-соединение, я написал сценарий, использующий ожидаемый файл, который прекрасно работает. Тем не менее, я хотел бы использовать этот скрипт в функции подключения к nautilus к серверу. Моя идея заключалась в том, чтобы каким-то образом включить этот ожидаемый сценарий в файл .ssh / config, поскольку nautilus может использовать подробно описанные здесь соединения, но я не знаю как. К сожалению, я не могу скопировать ключ RSA на сервер. Это многопользовательское соединение, и я не могу написать на первый сервер. Этот первый сервер запрашивает только пароль и машину, к которой я могу подключиться. Таким образом, пароль не является проблемой, так как он также может быть предоставлен nautilus. Любая помощь приветствуется, спасибо!

Ответы:


1

Вы не можете использовать пароль в ssh_config, Но вы можете использовать переадресацию портов (если это разрешено в Jumpbox):

SSHPASS=password sshpass -e ssh -L 2222:remotehost:22 user@jumpbox

а потом

ssh -p 2222 localhost

приведет вас прямо к удаленному хосту. Вы можете положить это в свой ssh_config, такие как:

Host remote-forwarded
  Hostname localhost
  Port 2222

а затем подключите такие как

ssh remote-forwarded

Похожим образом это будет работать в nautilus.

Переадресация портов запрещена на Jumpbox

В этом случае все будет сложнее. Вам нужно будет использовать прокси-команду для настройки переадресации портов непосредственно с удаленного хоста. Ваш конфиг будет длиннее:

Host remote-forwarded
  Hostname localhost
  Port 2222
Host jumpbox
  Hostname jumpbox-host
Host remote
  Hostname remote-host
  ProxyCommand ssh -W %h:%p jumpbox
  LocalForward 2222 localhost:22

В противном случае он должен работать так же, сначала

SSHPASS=password sshpass -e ssh remote

а затем непосредственно к другому хосту:

ssh remote-forwarded

Спасибо! К сожалению, у меня две проблемы: у sshpass нет опции -L, поэтому я заменил sshpass на ssh, это нормально? И "ssh -p 2222 localhost" выдает мне следующую ошибку: "ssh: подключиться к локальному порту хоста 2222: соединение отказано" Нужно ли открывать порт 2222? Я новичок в этом, извините за вопрос.
Daniel Förster

Да. Я снова забыл твой синтаксис. Но хотя было то, что вам не нужно писать expect сценарий, но вы можете использовать sshpass "взять тебя" на первый сервер. Изменить: Попробуйте первую команду с подробным ведением журнала ( -vvv ). Переадресация портов может быть запрещена.
Jakuje

Хорошо, спасибо, я думаю, это сработает. Однако теперь я понимаю, что переадресация портов запрещена системой перехода
Daniel Förster

Я изменил ответ для случая с запрещенной переадресацией портов на jumbox. Но я не проверял это, так что может быть еще какой-то сбой. Дайте мне знать, если это работает для вас.
Jakuje

Большой! Я вижу файлы в nautilus. Ваша запись .ssh / config "Host remote" сделала свое дело, когда вошла в диалог подключения nautilus к серверу. Однако я думаю, что ваша строка «SSHPASS = пароль sshpass -e ssh jumpbox» должна быть заменена на «SSHPASS = пароль sshpass -e ssh remote» (?) И «ssh remote-forwarded» также не работает (Ошибка: «ssh: connect» к хосту localhost port 2222: «Отказано в соединении»), но это было необязательно.
Daniel Förster
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.