SCP запрашивает пароль при использовании identity_file, но SSH не

546
Victor

Я создал новый ключ, используя ssh-keygen -t rsaбез пароля. Затем я передал ключ с помощью ssh-copy-id root@192.168.x.xи затем ssh'ed на хост с помощью ssh 'root@192.168.x.x'или scp, и он принимает меня без запроса пароля. Однако, когда я пытаюсь выполнить scp с помощью команды, scp -i ~/.ssh/id_rsa.pub test.wav root@192.168.x.x:/home/test/она запрашивает у меня пароль.

Он только запрашивает ключевую фразу для ключа и пользователя, когда я использую эту -i identity_fileопцию, и я хотел бы избежать этого, чтобы ее можно было запустить в сценарии.

-1

2 ответа на вопрос

0
Edel Gerardo

Используйте файл без расширения вместо .pub. Если вы не хотите использовать ключевой файл с парольной фразой, попробуйте использовать sshpass :

sshpass -p "" scp -i ~/.ssh/id_rsa test.wav root@192.168.x.x:/home/test/ 

Замените пароль парольной фразой вашего ключа.

Установите sshpass из репозиториев (например, sudo apt-get install sshpass)

0
Kenster
scp -i ~/.ssh/id_rsa.pub test.wav root@192.168.x.x:/home/test/ 

Вы используете неправильный файл ключа здесь. Файл с расширением ".pub" является файлом с открытым ключом. Соответствующий файл без расширения «.pub» является файлом закрытого ключа. Когда вы запускаете клиент ssh для подключения к удаленному серверу, вы должны предоставить файл закрытого ключа клиенту ssh.

~/.ssh/id_rsaэто один из ключей, который ssh ​​пытается по умолчанию. Если sshвы можете выполнить аутентификацию без указания явного ключа, то, scpвероятно, можете сделать это тоже:

scp test.wav root@192.168.x.x:/home/test/ 

Если вы хотите указать файл ключа, укажите файл без расширения «.pub»:

scp -i ~/.ssh/id_rsa test.wav root@192.168.x.x:/home/test/