Відповіді:
Спробуйте:
sftp -o "IdentityFile=keyname" jay@server.name.com
Ви можете використовувати -o
для передачі будь-якої опції, в якій діє ~/.ssh/config
.
IdentityFile
щоб завжди було надано можливість автоматично, ознайомтеся з відповіддю Юти Джархед про її розміщення~/.ssh/config
Скопіюйте свій ПУБЛІЧНИЙ ключ на сервер за допомогою традиційних засобів.
На сервері:
.ssh
якщо його не існує:[[! -d "$ {HOME} /. ssh"]] && mkdir -p "$ {HOME} /. ssh"
cat /path/to/public_key.pub >> "$ {HOME} /. ssh / санкціонований_кейс"
chmod go-rwx "$ {HOME}" "$ {HOME} /. ssh / санкціонований_кейс"
Після цього ви можете мати змогу увійти від клієнта за допомогою клавіші PRIVATE. Для автоматизації передачі потрібно використовувати пакетний файл, який є лише текстовим файлом, що містить список команд для виконання.
ехо "поставити filename.foo /safe/path/filename.foo" >> /tmp/batchfile.txt sftp -b /tmp/batchfile.txt -oIdentityFile = / шлях / до / private_key user @ host
Крім того, не соромтеся створити файл ~ / .ssh / config у форматі ssh_config, щоб ви могли просто ввести це в майбутньому:
sftp -b /tmp/batchfile.txt хост
Зміст зразка ~/.ssh/config
Хост ім'я_госту Ім'я користувача IdentityFile / шлях / до / private_key
Нещодавно я потрапив у цю проблему, і те, що працювало для мене у моїй установці терміналу MacBook за замовчуванням, полягає в наступному
sftp -i ./privateFilePath.key username@url.com
Зауважте, що вас можуть просунути за допомогою НЕЗАБРАНЕНОГО ПРИВАТНОГО КЛЮЧОВОГО ФАЙЛУ! повідомлення, у цьому випадку вам потрібно виконати цю команду, щоб переконатися, що ваш приватний ключ не доступний іншим.
chmod 600 privateFilePath.key
У деяких випадках вам потрібно поставити sudo перед командою, це лише в тому випадку, якщо ви працюєте в захищеному адміністратором каталозі
Я бажаю корисного :)
-i
варіант не працює?