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

970
Daniel Förster

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

2

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

1
Jakuje

You can't use password in ssh_config. But you might use port forwarding (if allowed on the jumpbox):

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

and then

ssh -p 2222 localhost 

will bring you directly to the remote host. You can put that into your ssh_config, such as:

Host remote-forwarded Hostname localhost Port 2222 

and then connect such as

ssh remote-forwarded 

Similar way it will work in nautilus.

Port forwarding prohibited on jumpbox

In this case it will get more complicated. You will need to use proxy command to set up port forwarding directly from the remote host. You config will be longer:

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 

Otherwise it should work the same way, first

SSHPASS=password sshpass -e ssh remote 

and then directly to the other host:

ssh remote-forwarded 
Спасибо! К сожалению, у меня две проблемы: у sshpass нет опции -L, поэтому я заменил sshpass на ssh, это нормально? И «ssh -p 2222 localhost» выдает мне следующую ошибку: «ssh: подключиться к локальному порту хоста 2222: соединение отказано» Нужно ли открывать порт 2222? Я новичок в этом, извините за вопрос. Daniel Förster 8 лет назад 0
Да. Я снова забыл твой синтаксис. Но хотя и было то, что вам не нужно писать сценарий «ожидаем», но вы можете использовать «sshpass», чтобы «перенести вас» на первый сервер. Изменить: Попробуйте первую команду с подробным ведением журнала (`-vvv`). Переадресация портов может быть запрещена. Jakuje 8 лет назад 0
Хорошо, спасибо, я думаю, это сработает. Однако теперь я понимаю, что переадресация портов запрещена системой перехода. Daniel Förster 8 лет назад 0
Я изменил ответ для случая с запрещенной переадресацией портов на jumbox. Но я не проверял это, так что может быть еще какой-то сбой. Дайте мне знать, если это работает для вас. Jakuje 8 лет назад 0
Большой! Я вижу файлы в 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 8 лет назад 0
Да. Конечно. Виноват. Также была опечатка в опции LocalForward. Можете ли вы дать еще одну попытку? Jakuje 8 лет назад 0
Это работает сейчас, но я не вижу большой разницы между `ssh remote` и` ssh remote-forwarded`. Оба работают просто отлично, это вопрос ввода пароля? Другой момент заключается в том, что мне не удалось использовать `SSHPASS = пароль sshpass -e ssh remote` и вместо этого использовать` ssh remote`. В любом случае, как я уже сказал, ввод пароля не беспокоит меня в командной строке, и nautilus может сохранить пароль. Может быть, для тех, у кого такая же проблема: не забудьте указать свои имена пользователей на разных компьютерах, например, с помощью записи "User username" в `.ssh / config`. Спасибо вам большое! Daniel Förster 8 лет назад 0
Особенно спасибо за решение без скрипта ожидаемого. Мне все равно эта идея не понравилась. Daniel Förster 8 лет назад 0
Да, именно так, как вы пишете. Для `remote-forwarded` не требуется пароль для прокси. Пожалуйста, также не забудьте пометить этот ответ как решение, если оно решило вашу проблему. Jakuje 8 лет назад 0

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