Utilisation de SSH, il est facile d'imprimer le contenu d'un fichier en utilisant
ssh Host 'cat file.txt'
Lorsque SSH est désactivé, et uniquement SFTP est activé, l'exécution de la commande précédente donne l'erreur suivante:
Ce service permet uniquement aux connexions SFTP.
Pour contourner ce problème, je pourrais créer un fichier temporaire à l'aide de scp
ou sshfs
(comme indiqué ci-dessous), mais cela semble vraiment laid. Quelle est la bonne façon d'imprimer le contenu d'un fichier distant lorsque SSH est désactivé?
mkdir tmpdir
sshfs Host: tmpdir
cat tmpdir/file.txt
fusermount -u tmpdir
# This does not work! scp -v Host:file.txt . shows
# "Sink: This service allows sftp connections only."
scp Host:file.txt .
cat file.txt
rm file.txt
Curl peut afficher le fichier de la même manière que le chat serait. Pas besoin de supprimer le fichier car il a simplement affiché la sortie à moins que vous le disiez autrement.
curl -u username:password sftp://hostname/path/to/file.txt
Si vous utilisez l'authentification de clé publique:
curl -u username: --key ~/.ssh/id_rsa --pubkey sftp://hostname/path/to/file.txt
Si vous utilisez les emplacements par défaut, alors --key
et --pubkey
peut être omis:
curl -u username: sftp://hostname/path/to/file.txt
Le nom d'utilisateur peut également faire partie de l'URL. Le résultat final semble donc très proche de la commande SSH:
curl sftp://username@hostname/path/to/file.txt
Pour les personnes qui peuvent courir scp
, vous pouvez le faire:
scp remotehost:/path/to/remote/file /dev/stdout