Comment utiliser mon fichier de clés pour transférer des données d'un serveur à un autre


25

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

Actuellement, j'essaie de faire

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

-i keynamene fonctionne pas, se résout simplement avec illegal option -- i.

Réponses:


35

Essayer:

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

Vous pouvez utiliser -opour passer n'importe quelle option valide dans ~/.ssh/config.


J'y suis arrivé. Merci! comment le garder normalement?
Jay

Je ne sais pas ce que vous entendez par "gardez-le normalement". Si vous voulez que l' IdentityFileoption soit toujours automatiquement donnée, consultez la réponse d' UtahJarhead à propos de la mise en place~/.ssh/config
Celada

4

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

Sur le serveur:

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

Après cela, vous devriez pouvoir vous connecter à partir du client à l'aide de la clé PRIVÉE. Pour automatiser un transfert, vous souhaitez utiliser un fichier batch, qui n'est qu'un fichier texte contenant une liste de commandes à exécuter.

echo "mettre filename.foo /safe/path/filename.foo" >> /tmp/batchfile.txt
sftp -b /tmp/batchfile.txt -oIdentityFile = / path / to / private_key user @ host

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

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

Exemple de contenu de ~/.ssh/config

Hôte the_hostname
    Utilisateur nom_utilisateur
    IdentityFile / chemin / vers / clé_privée

J'essaierai ceci sur le prochain lot, la solution ci-dessus a cependant fait l'affaire.
Jay

1

Si vous cherchez à configurer sftp sur ec2, cet article pourrait vous aider


Désolé, ce n'était vraiment pas le cas.
Jay

1
Cette "réponse" n'a rien à apporter à la question. Pire, ce n'est qu'un lien vers une page qui disparaîtra un jour.
John Mayor

0

Je suis récemment entré dans ce problème et ce qui a fonctionné pour moi dans ma configuration de terminal par défaut pour MacBook est le suivant

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

Notez que vous pourriez être promu avec un fichier de clé privée non protégé! message auquel cas vous devez exécuter cette commande pour vous assurer que votre clé privée n'est pas accessible aux autres.

chmod 600 privateFilePath.key 

Dans certains cas, vous devez mettre sudo devant la commande, ce n'est que si vous travaillez dans un répertoire protégé par l'administrateur

Je souhaite que ce soit utile :)


Pourquoi pensez-vous que cela sera utile lorsque la question indique que l' -ioption ne fonctionne pas?
Scott
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.