Я пишу сценарий Groovy для создания SCP. Обратите внимание, что я еще не запускал его, потому что остальное еще не закончено. Теперь, если вы делаете scp в первый раз, необходимо аутентифицировать отпечаток пальца. В будущем - нет.
Мое текущее решение состоит в том, что, поскольку я получаю 3 попытки ввода пароля, и мне действительно нужна только 1 (это не похоже на то, что сценарий неправильно наберет пароль ... если он неправильный, это неправильно!), Это указать «да» в качестве первая попытка пароля. Таким образом, он примет отпечаток пальца, если это необходимо, и будет использовать правильный пароль в качестве первой попытки. Если он не нуждался в этом, он ставит «да» в качестве первой попытки и «правильно» в качестве второй.
Однако мне кажется, что это не очень надежное решение, и я знаю, что если бы я был клиентом, мне бы не хотелось видеть «неправильный пароль» в моем выводе. Если это произойдет по другой причине, это будет очень досадное неправильное употребление.
Далее следует соответствующий раздел рассматриваемого сценария. Я открыт для любой тактики, предполагающей использование scp (или выполнение передачи файлов) другим способом. Я просто хочу закончить работу. Я даже открыт для написания сценариев оболочки, хотя я не лучший в этом деле.
def command = []
command.add('scp')
command.add(srcusername + '@' + srcrepo + ':' + srcpath)
command.add(tarusername + '@' + tarrepo + ':' + tarpath)
def process = command.execute()
process.consumeOutput(out)
process << "yes" << LS << tarpassword << LS
process << "yes" << LS << srcpassword << LS
process.waitfor()
Спасибо,
световой кодер
Ужасно ненадежный ответ: http://linuxcommando.blogspot.com/2008/10/how-to-disable-ssh-host-key-checking.html
(В основном кормить ssh
директивы параметров команды, которые заставляют его смотреть на /dev/null
для ключей хоста и игнорируйте тот факт, что он никогда раньше не видел ключ - устраняет проблему, но отбрасывает все меры безопасности и оставляет вас открытыми для атак со сбором пароля или закрытого ключа)
man ssh_config
"... StrictHostKeyChecking Если этот флаг установлен на yes'', ssh(1) will never automatically add host keys to the ~/.ssh/known_hosts file, and refuses to connect to hosts whose host key
has changed. This provides maximum protection against trojan horse attacks, though it can be annoying when the /etc/ssh/ssh_known_hosts file is poorly main‐
tained or when connections to new hosts are frequently made. This option forces the user to manually add all new hosts. If this flag is set to
no '', ssh автоматически добавит новые ключи хоста в файлы известных пользователю хостов. Если этот флаг установлен в ask'', new host keys will be added to the user known host files
only after the user has confirmed that is what they really want to do, and ssh will refuse to connect to hosts whose host key has changed. The host keys of
known hosts will be verified automatically in all cases. The argument must be
да'', no'', or
просить''. По умолчанию - `` спросить ''. ... "
Почему бы не написать оболочку для ssh, которая в основном выполняет сканирование ssh-ключей, а затем проверяет наличие hostkey в ~ / .ssh / known_hosts? Если его нет в known_hosts, ожидайте ответа «да».