Я пытаюсь создать сценарий оболочки, который будет автоматически scp использование моего закрытого ключа, порта моего выбора и к наиболее часто используемой учетной записи пользователя (не моя собственная учетная запись). Я смог выполнить это для ssh путем выполнения следующего.
####!/bin/bash
ssh -p (port#) <port #> -i ~/.ssh/.id_dsa -o StrictHostKeyChecking=no -l admin $@
Для scp у меня есть следующее до сих пор.
####!/bin/bash
scp -P (port#) -i ~/.ssh/.id_dsa $1 admin $@
Если я пытаюсь выполнить свою команду, не указывая имя пользователя, я получаю следующее.
user:~$ scputil <file to transfer> host:/tmp
user@10.70.52.18's password:
Поскольку Вы видите, что это просит пароль моего пользователя, когда я надеялся, что это будет использовать администратора.
Если бы я указываю пользователя наряду со своей командой, она работает, как я ожидал бы
user:~$ scputil <file to transfer> admin@10.70.52.18:/tmp/
<file to transfer> 22% 78MB 13.1MB/s 00:20 ETA
Кто-либо знает о способе указать пользователя для передачи файлов в рамках сценария оболочки?
Заранее спасибо!
В scp можно использовать-o опцию передать ssh опции, используемые для входа в систему для передачи файлов.
Так, если бы Вы хотите заставить scp войти в систему как администратор, использование User=admin
, таким образом, Ваша команда scp стала бы чем-то как
scp -o User=admin -P port -i public_key $@