Хост-система, с которой я пытаюсь установить удаленное соединение, работает на SunOS. В системе нет ssh-copy-id.
После поиска я обнаружил, что следующая команда при ее выполнении будет имитировать функцию ssh-copy-id.
cat ~/.ssh/id_rsa.pub | ssh remotehost 'cat >>~/.ssh/authorized_keys && echo "Host Key Copied"'
Я пытаюсь написать скрипт, используя ожидаемое выполнение этой операции, но он завершается неудачно со следующей ошибкой.
Код:
#!/usr/bin/expect -f
#!/bin/bash
set username [lindex $argv 0]
set password [lindex $argv 1]
set host [lindex $argv 2]
cat ~/.ssh/id_rsa.pub | ssh remotehost 'cat >>~/.ssh/authorized_keys && echo \"Host Key Copied\"'
expect "Password:"
send "$password\n"
expect eof
Ошибка:
invalid command name "cat"
while executing
"cat ~/.ssh/id_rsa.pub | ssh remotehost 'cat >>~/.ssh/authorized_keys && echo \"Host Key Copied\"'"
(file "./remote.sh" line 8)
Из поиска я понял, что ожидаемый не будет принимать команды оболочки по умолчанию. Может ли кто-нибудь помочь в решении моей проблемы. Заранее спасибо.