Як використовувати свій файл ключів для перенесення даних з одного сервера на інший


25

Я не можу scp, інший сервер приймає лише sftp з'єднання.

В даний час я намагаюся це зробити

sftp jay@server.name.com:/files> put -r ~/

-i keynameне працює, просто вирішує с illegal option -- i.

Відповіді:


35

Спробуйте:

sftp -o "IdentityFile=keyname" jay@server.name.com

Ви можете використовувати -oдля передачі будь-якої опції, в якій діє ~/.ssh/config.


Прибив його. Спасибі! як я нормально зберігаю його там?
Jay

Я не знаю, що ви маєте на увазі під "тримати там нормально". Якщо ви хочете сказати, що ви хочете, IdentityFileщоб завжди було надано можливість автоматично, ознайомтеся з відповіддю Юти Джархед про її розміщення~/.ssh/config
Селада,

4

Скопіюйте свій ПУБЛІЧНИЙ ключ на сервер за допомогою традиційних засобів.

На сервері:

  • Створіть, .sshякщо його не існує:
[[! -d "$ {HOME} /. ssh"]] && mkdir -p "$ {HOME} /. ssh"
  • Реалізуйте відкритий ключ:
cat /path/to/public_key.pub >> "$ {HOME} /. ssh / санкціонований_кейс"
  • Встановіть відповідні дозволи. OpenSSH ДУЖЕ АНАЛЬНО щодо дозволів файлів, про які йдеться:
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

Я спробую це на наступній партії, але рішення, яке було вище, зробило трюк.
Jay

1

Якщо ви хочете налаштувати sftp на ec2, ця стаття може допомогти


Вибачте, це дійсно didnt.
Jay

1
Ця "відповідь" нічого не може сприяти питанню. Гірше, що це лише посилання на сторінку, яка колись зникне.
Джон Мер

0

Нещодавно я потрапив у цю проблему, і те, що працювало для мене у моїй установці терміналу MacBook за замовчуванням, полягає в наступному

sftp -i ./privateFilePath.key username@url.com

Зауважте, що вас можуть просунути за допомогою НЕЗАБРАНЕНОГО ПРИВАТНОГО КЛЮЧОВОГО ФАЙЛУ! повідомлення, у цьому випадку вам потрібно виконати цю команду, щоб переконатися, що ваш приватний ключ не доступний іншим.

chmod 600 privateFilePath.key 

У деяких випадках вам потрібно поставити sudo перед командою, це лише в тому випадку, якщо ви працюєте в захищеному адміністратором каталозі

Я бажаю корисного :)


Чому ви вважаєте, що це буде корисним, коли в запитанні сказано, що -iваріант не працює?
Скотт
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.