UNIX — автоматический ввод пароля с помощью SCP

Я довольно новичок в сценариях Unix, и прямо сейчас я изменяю эту существующую строку кода FTP, приведенную ниже. Мне нужно, чтобы он автоматически вставлял пароль после доступа к определенному серверу моста. После успешного ввода пароля скрипт автоматически отправит файл подтверждения ($acknFile) на этот мостовой сервер.

Я читал разные статьи и форумы, и многие из них предлагают использовать Expect в качестве решения. Но мне сказали, что нам просто нужно использовать любой модуль, который у нас есть, и, к сожалению, Expect не включен. Буду очень признателен за любой вклад от вас, ребята, и постараюсь понять, как это работает.

См. строку кода ниже:

if grep -q "$Filename" "$FilenameDirectory"
then
echo "File exists." >> $acknFile
scp - v $acknFile "$BridgeServer"
else
echo "File does not exists."
fi

person Ayban Santos    schedule 01.02.2016    source источник


Ответы (1)


Вы используете scp, который использует ssh, а не ftp.

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

Шаг 1. Создайте открытый и закрытый ключи с помощью ssh-key-gen на локальном хосте.

$ ssh-keygen

Шаг 2: Скопируйте открытый ключ на удаленный хост, используя ssh-copy-id.

$ ssh-copy-id user@remote-host

Шаг 3: Проверьте вход на удаленный хост без ввода пароля

$ ssh user@remote-host
person Shreesh    schedule 01.02.2016
comment
если я разрешаю своей учетной записи использовать вход без пароля, возникнут ли какие-либо проблемы в будущем, поскольку я не буду единственным, кто использует этот скрипт, насколько я понимаю. Это будет развернуто в разных средах. - person Ayban Santos; 01.02.2016
comment
Если другие будут использовать этот сценарий, вы можете посмотреть ссылку unix.stackexchange.com/questions/60544/ . Если количество пользователей, которые будут использовать ваш скрипт, фиксировано, вы можете указать конкретную команду = перед ключами, в противном случае сделайте скрипт с вашим эффективным uid, тогда любой сможет выполнить скрипт. - person Shreesh; 03.02.2016