Не удается подключиться к удаленному серверу с помощью x2goclient, не удалось установить соединение - обнаружен существующий ssh-агент

Я думаю, что то, о чем вы спрашиваете, нелегко выполнимо, возможно, даже невозможно с помощью базовых сценариев bash.

Поэтому следующее не совсем отвечает на ваш вопрос, но предлагает другой подход к вашей проблеме.

Вместо использования sshpass, вы можете использовать обычную команду scp с аутентификацией по публичному ключу без пароля. См. [1], если вы не знаете, что это такое.

Если вы собираетесь использовать scp в скриптах для локального использования, то, IMO, лучше поступить так:

  • сгенерируйте публичный ключ без пароля
  • используйте ssh-copy-id для добавления вашего публичного ключа на сервер

Этого уже достаточно, чтобы иметь возможность выполнить вашу команду без подсказки:

scp -r me8@host.ca:/cmshome/me/file /home/me/Desktop

Для скриптов, которые вы хотите распространять, sshpass с открытым паролем, конечно, не очень хорошая идея, вы должны по крайней мере использовать флаг sshpass "-e" и позволить пользователю указать пароль как переменную окружения для большей безопасности.

В этом случае подход с открытым ключом немного менее удобен, но все же возможен. Если вы не можете позволить себе попросить пользователя скрипта создать открытый ключ, вы можете создать открытый ключ на лету, скопировать его на сервер и выполнить scp без каких-либо подсказок:

 #!/bin/bash
 KEY="$HOME/.ssh/id_rsa_example"
 if [ ! -e "$KEY" ]; then
     ssh-keygen -t rsa -N "" -f "$KEY"
     sshpass -e ssh-copy-id -i "${KEY}.pub" me8@host.ca
 fi
 scp -r me8@host.ca:/cmshome/me/file /home/me/Desktop

Наконец, есть еще возможность использовать rsync, чтобы сделать вместо него индикатор выполнения:

$ rsync -P --rsh="sshpass -p $PASSWORD ssh -l me8" host.ca:/cmshome/me/file /home/me/Desktop

[1] https://help.ubuntu.com/community/SSH/OpenSSH/Keys

1
12.12.2017, 05:06
1 ответ

У меня возникла та же проблема. Добавив --quietпри запуске связки ключей в.profile,Я снова мог использовать клиент x2go для доступа к серверу.

eval keychain --quiet --eval --agents ssh....

0
28.01.2020, 00:42

Теги

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