web-dev-qa-db-fra.com

Comment utiliser mon fichier de clés pour transférer le fichier sftp d'un serveur à un autre

Je ne peux pas scp, l'autre serveur ne prend que des connexions sftp.

Actuellement, j'essaie de faire

sftp [email protected]:/files> put -r ~/

-i keyname ne fonctionne pas, résout simplement avec illegal option -- i.

20
Jay

Essayer:

sftp -o "IdentityFile=keyname" [email protected]

Vous pouvez utiliser -o pour passer toute option valide dans ~/.ssh/config.

27
Celada

Copiez votre clé PUBLIC sur le serveur en utilisant des moyens traditionnels.

Sur le serveur:

  • Créez .ssh s'il n'existe pas:
[[! -d "$ {HOME} /. ssh"]] && mkdir -p "$ {HOME} /. ssh"
  • Implémentez la clé publique:
cat /path/to/public_key.pub >> "$ {HOME} /. ssh/allowed_keys"
  • Définissez les autorisations appropriées. OpenSSH est TRES ANAL concernant les permissions des fichiers en question:
chmod go-rwx "$ {HOME}" "$ {HOME} /. ssh/allowed_keys"

Après cela, vous devriez pouvoir vous connecter à partir du client en utilisant la clé PRIVATE. Pour automatiser un transfert, vous souhaitez utiliser un fichier de commandes, qui est simplement un fichier texte contenant une liste de commandes à exécuter.

 echo "put filename.foo /safe/path/filename.foo" >> /tmp/batchfile.txt private_key utilisateur @ hôte 

Sinon, n'hésitez pas à créer un fichier ~/.ssh/config au format ssh_config afin de pouvoir le saisir à l'avenir:

 sftp -b /tmp/batchfile.txt Hôte 

Contenu de l'échantillon de ~/.ssh/config

 Hôte the_hostname 
 Utilisateur nom_utilisateur 
 IdentityFile /path/to/private_key
2
UtahJarhead

Si vous souhaitez installer sftp sur ec2, cet article pourrait vous aider.

1
Anshu

Je suis récemment entré dans cette problématique et ce qui a fonctionné pour moi dans la configuration du terminal par défaut de mon macbook est le suivant:

sftp -i ./privateFilePath.key [email protected]

Notez que vous pourriez être promu avec le message FICHIER DE CLÉ PRIVÉE NON-PROTÉGÉ! , auquel cas vous devez exécuter cette commande pour vous assurer que votre clé privée n'est pas accessible par d'autres .

chmod 600 privateFilePath.key 

Dans certains cas, vous devez mettre Sudo devant la commande, ceci uniquement si vous travaillez dans un répertoire protégé par l'administrateur.

Je souhaite que c'est utile :)

0
KhaledMohamedP