Понадобилось мне как-то организовать шифрованный обмен данными между железякой под управлением OpenWrt Kamikaze 7.09 и UBUNTU сервером.
Решил использовать SCP и мгновенно наступил на грабли - обмен должен происходить автоматически а для этого нужно сгенерить публичный и приватный ключи для сервера и клиента.
Естественно сразу сделал ssh-keygen, положил публичный ключ в папку .ssh пользователя, приватный на OpenWrt машину и при попытке scp user@mysite.com:test test -i key получил exited: string too long
Начал курить интернет. Все что удалось почерпнуть - что OpenWrt использует dropbear и ключи openSSH подсунуть туда не удасться. А вот далее никакого продвижения - интернет выдавал какие-то мистические dropbearconvert который я так и не нашел. Кто-то генерил какие-то ключи через putty. Извращались как могли и нифига не работало.
В итоге я родил свой собственный вариант извращения :)
1) Прямо на железке делаем dropbearkey -t rsa -f private.key > authorized_keys
2) Из authorized_keys удаляем первую и третью строку чтобы остальсь только строка которая начинается на ssh-rsa
3) Копируем authorized_keys в директорию пользователя (на сервере ессесно) например /home/user/.ssh/authorized_keys
Вот и вся магия. Делаем scp -i private.key filetoupload user@mysite.com:filetoupload - вуаля, файл копируется и никакого пароля
