-1

Я создал новый ключ, используя 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 , и я хотел бы избежать этого, чтобы его можно было запустить в скрипте.

2 ответа2

0

Используйте файл без расширения вместо .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
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/

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .