Respostas:
Experimentar:
sftp -o "IdentityFile=keyname" jay@server.name.com
Você pode usar -o
para passar qualquer opção válida ~/.ssh/config
.
IdentityFile
opção de sempre automaticamente ser dada, veja UtahJarhead resposta s' sobre colocá-lo em~/.ssh/config
Copie sua chave PUBLIC para o servidor usando meios tradicionais.
No servidor:
.ssh
se não existir:[[! -d "$ {HOME} /. ssh"]] && mkdir -p "$ {HOME} /. ssh"
cat /path/to/public_key.pub >> "$ {HOME} /. ssh / allowed_keys"
chmod go-rwx "$ {HOME}" "$ {HOME} /. ssh / allowed_keys"
Depois disso, você deverá conseguir fazer login no cliente usando a chave PRIVATE. Para automatizar uma transferência, você deseja usar um arquivo em lotes, que é apenas um arquivo de texto que contém uma lista de comandos a serem executados.
echo "colocar filename.foo /safe/path/filename.foo" >> /tmp/batchfile.txt sftp -b /tmp/batchfile.txt -oIdentityFile = / caminho / para / chave_principal usuário @ host
Como alternativa, sinta-se à vontade para criar um arquivo ~ / .ssh / config no formato ssh_config para que você possa digitar isso no futuro:
host sftp -b /tmp/batchfile.txt
Amostra de conteúdo de ~/.ssh/config
Host the_hostname Usuário user_name IdentityFile / path / to / private_key
Se você deseja configurar o sftp no ec2, este artigo pode ajudar
Eu entrei nesta questão recentemente e o que funcionou para mim na minha configuração de terminal padrão do macbook é o seguinte
sftp -i ./privateFilePath.key username@url.com
Observe que você pode ser promovido com o ARQUIVO CHAVE PRIVADO NÃO PROTEGIDO! mensagem, nesse caso, você precisa executar este comando para garantir que sua chave privada não esteja acessível por outras pessoas.
chmod 600 privateFilePath.key
Em alguns casos, você precisa colocar o sudo na frente do comando, isso é apenas se você estiver trabalhando em um diretório protegido pelo administrador
Eu desejo que isso seja útil :)
-i
opção não está funcionando?