Команда SSH ведет себя по-разному в Expect Script

Я использую эту команду на сервере Server1

~# ssh root@Server2 /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys 

добавить содержимое id_rsa.pub id_rsa.pub в authorized_keys Server1.

Он работает, если я делаю это вручную, но когда я делаю это в сценарии ожидания:

 #!/usr/bin/expect set timeout 60 spawn ssh root@[lindex $argv 0] cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys expect "yes/no" { send "yes\r" expect "*?assword" { send "[lindex $argv 1]\r" } } "*?assword" { send "[lindex $argv 1]\r" } interact 

Что происходит, когда я использую скрипт, так это то, что id_rsa.pub Server2 добавляется через authorized_keys Server2.

Какой был бы правильный синтаксис?

One Solution collect form web for “Команда SSH ведет себя по-разному в Expect Script”

Похоже, что ожидание не является оболочкой, поэтому оно передается как аргумент ssh вместо интерпретации.

Попробуйте spawn bash -c "ssh root@[lindex $argv 0] cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys"

  • Разрешить подключение к SSH не используя мою VPN
  • Указание исходящего интерфейса для туннеля SSH
  • Как запустить keychain из gdm?
  • Аутентификация ключа ssh не работает из сети / if-up.d / scripts
  • Я SSH на сервер linux через putty, и у меня есть связанный диск на моей машине Windows. Как я могу получить доступ к файлам на других дисках?
  • ssh с sudo не запускает службы
  • Автоматически запускать команду на каждом узле при запуске с помощью cssh?
  • Не удается подключиться к ssh
  • Что вызывает задержку нажатий клавиш в приложении терминала OSX?
  • Как предотвратить удаленный вход ssh из-за нарушения dbus?
  • ssh: выполнить команду перед входом в систему
  • Как создать сеанс SSH?
  • Linux и Unix - лучшая ОС в мире.