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
.
Essayer:
sftp -o "IdentityFile=keyname" [email protected]
Vous pouvez utiliser -o
pour passer toute option valide dans ~/.ssh/config
.
Copiez votre clé PUBLIC sur le serveur en utilisant des moyens traditionnels.
Sur le serveur:
.ssh
s'il n'existe pas:[[! -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"
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
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 :)