Мне нужно скопировать с помощью scp несколько XML-файлов (периодом с апреля по май 2016 г.) с сервера Solaris (сервер A) на сервер Linux (сервер B), где сервер Solaris является домашним каталогом, в котором написан скрипт и который будет выполнен.
Для этого я написал следующий скрипт:
#!/bin/sh
ssh [email protected] touch --date "2016-04-01" /tmp/start.tmp
ssh [email protected] touch --date "2016-05-31" /tmp/end.tmp
for i in `find /home/hs/demo*.xml -type f -newer /tmp/start.tmp -not -newer /tmp/end.tmp`
do
scp [email protected]:$i [email protected]:/data/Output
done
Но после выполнения скрипта с сервера A он запрашивает у меня пароль (чего я не хочу, так как мне нужно, чтобы Solaris автоматически выполнял scp-запросы файлов без вмешательства человека)
А для выполнения scp я создал ключи с помощью команды «ssh-keygen -t rsa» на сервере Solaris (сервер A- 10.20.14.49) и скопировал открытый ключ на сервер Linux (сервер B- 10.24.21.11).
Но после выполнения скрипта с сервера А он все равно запрашивает у меня пароль, поэтому я создалфайл конфигурации на сервере A в /home/hs/.ssh, и ниже приводится его содержание:-
Host oa
User dev
HostName 10.24.21.11
IdentityFile ~/.ssh/my_ssh_key
Но Solaris (сервер A) по-прежнему запрашивает у меня пароль.
решение1
Вместо этого вы можете использовать следующую команду, если она доступна:
ssh-копия-id[email protected]
Это позволит перенести ваш открытый ключ на удаленный сервер и выполнить процесс авторизации ключа.