Ответы:
Пытаться:
sftp -o "IdentityFile=keyname" jay@server.name.com
Вы можете использовать -o
для передачи любой опции, которая действительна в ~/.ssh/config
.
IdentityFile
опция всегда предоставлялась автоматически, посмотрите ответ UtahJarhead о ее включении~/.ssh/config
Скопируйте ваш ключ PUBLIC на сервер, используя традиционные средства.
На сервере:
.ssh
если он не существует:[[! -d "$ {HOME} /. ssh"]] && mkdir -p "$ {HOME} /. ssh"
cat /path/to/public_key.pub >> "$ {HOME} /. ssh / authorized_keys"
chmod go-rwx "$ {HOME}" "$ {HOME} /. ssh / authorized_keys"
После этого вы сможете войти с клиента, используя ключ PRIVATE. Чтобы автоматизировать передачу, вы хотите использовать пакетный файл, который представляет собой просто текстовый файл, содержащий список команд для выполнения.
echo "положить имя файла.foo /safe/path/filename.foo" >> /tmp/batchfile.txt sftp -b /tmp/batchfile.txt -oIdentityFile = / path / to / private_key user @ host
Кроме того, не стесняйтесь создавать файл ~ / .ssh / config в формате ssh_config, чтобы вы могли просто напечатать его в будущем:
sftp -b /tmp/batchfile.txt host
Пример содержимого ~/.ssh/config
Хост the_hostname Пользователь user_name IdentityFile / path / to / private_key
Если вы хотите настроить sftp на ec2, эта статья может помочь
Недавно я попал в эту проблему, и то, что мне помогло в настройке терминала по умолчанию на моем MacBook, таково:
sftp -i ./privateFilePath.key username@url.com
Обратите внимание, что вы можете получить повышение с помощью незащищенного частного ключа! сообщение, в этом случае вам нужно выполнить эту команду, чтобы убедиться, что ваш закрытый ключ не доступен другим.
chmod 600 privateFilePath.key
В некоторых случаях вам нужно поставить sudo перед командой, это только если вы работаете в каталоге, защищенном от администратора
Я желаю, чтобы это было полезно :)
-i
опция не работает?