Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 28/09/2017, à 10:13

Vbuntu

[Résolu] nautilus: terminal distant

Bonjour,

Le terminal local de mon ubuntu m'affiche user123@ordinateur
Lorsque depuis l'explorateur de fichier je suis dans un dossier situé sur un serveur distant, je peux faire un clic droit et cliquer sur "ouvrir dans un terminal distant". Ce dit terminal m'affiche  user123@ipduserveur
Le problème c'est que mon user local n'est pas le même que le user du serveur.

Comment puis-je dire à ubuntu de modifier mon user quand il essaye de se connecter sur ce serveur?

j'ai essayé de modifier mon user local, en suivant la doc https://doc.ubuntu-fr.org/tutoriel/chan … _de_compte ,  pour avoir le même que celui du serveur, mais j'ai un petit soucis, je ne parviens pas à accéder au mode recovery. l'écran de la doc https://doc.ubuntu-fr.org/recovery_mode ne m'apparait jamais, ubuntu démarre presque instantanément, et j'ai beau appuyer sur échap ou toutes les touches fonctions pendant ces quelques secondes de démarrage, je tombe systématiquement sur le bureau.

Notez que je suis sur virtualbox.

Quelqu'un à une solution pour moi?

merci!

Dernière modification par Vbuntu (Le 03/10/2017, à 10:25)

Hors ligne

#2 Le 28/09/2017, à 13:59

J5012

Re : [Résolu] nautilus: terminal distant

le user du serveur est le user local au serveur, meme si ton user local à ton ordi a la meme orthographe que le user du serveur ca ne sera jamais le meme utilisateur !

si tu veux te loguer avec le user du serveur, tu dois utiliser une connexion similaire à ssh ...

le terminal distant ouvert à partir d'un dossier de l'explorateur de fichiers est geré par le procedé fuse, et c'est donc normal que tu aies user-local-à-ton-ordi@serveur, et non user-serveur@serveur : ce n'est pas user-serveur qui a initié la connexion fuse ...

Hors ligne

#3 Le 28/09/2017, à 14:30

Vbuntu

Re : [Résolu] nautilus: terminal distant

Ah d'accord, merci, je pensais que la même orthographe suffirait sad

Actuellement pour le loguer sur le serveur, j'ouvre un terminal "local", et je tape ssh user-serveur@serveur après je me retrouve à la racine du serveur et je navigue dedans pour retrouver le bon dossier. Il y a une solution plus pratique pour que le terminal ouvre le dossier affichée par l'explorateur de fichier (je préfère naviguer en interface graphique)? En fait à quoi sert "ouvrir un terminal distant" s'il récupère un user local et un le joint à un serveur distant  ?

Hors ligne

#4 Le 28/09/2017, à 22:31

J5012

Re : [Résolu] nautilus: terminal distant

oui tu peux monter sur le serveur un ftp over ssh ou un genre de fuse over ssh

ex : sshfs

https://github.com/libfuse/sshfs a écrit :

SSHFS

About

SSHFS allows you to mount a remote filesystem using SFTP. Most SSH servers support and enable this SFTP access by default, so SSHFS is very simple to use - there's nothing to do on the server-side.

How to use

Once sshfs is installed (see next section) running it is very simple:

sshfs [user@]hostname:[directory] mountpoint
...

paquet disponible dans le depot xenial : https://packages.ubuntu.com/xenial/sshfs

Hors ligne

#5 Le 29/09/2017, à 09:55

Vbuntu

Re : [Résolu] nautilus: terminal distant

"SSHFS vous permet de monter un système de fichier distant en utilisant SFTP." C'est comme ça que je traduit la description de ce petit programme.

Nautilus, le système de fichier par défaut de Ubuntu, permet déjà de monter un système de fichier distant en SFTP je crois bien. Il y a un an j'ai "monté le serveur" sur mon ubuntu, de type sftp://ip_du_serveur/chemin_d'un_repertoire en cliquant sur "connexion à un serveur". Je peux naviguer dans mes dossiers sur le serveur, éditer mes fichiers, les déplacer, bref faire tout ce qu'il est possible de faire avec des dossiers et fichiers locaux.
Je pense que cet outil ne va pas me permettre de faire ce que je souhaite.

Prenons un exemple.
Je suis dans le répertoire /home/user/Documents/dossier. Si je vais un clic droit puis ouvrir dans un terminal, je vais me retrouver automatiquement dans ce dossier depuis le terminal, avec userlocal@ordi:/home/user/Documents/dossier$, comme si j'avais taper cd /home/user/Documents/dossier.
Maintenant imaginons que je suis dans le répertoire distant monté sur ubuntu /serveur/dossier1/dossier2. Je souhaiterai alors me retrouver dans un terminal avec user_serveur@serveur:/serveur/dossier1/dossier2$. Si je fais un clic droit depuis un répertoire serveur monté sur ubuntu, il apparait alors un menu absent dans les dossiers locaux qui dit "ouvrir avec un terminal distant". lorsque je clique dessus, ubuntu doit envoyer, je suppose, une requête au serveur de type ssh userlocal@ip_du_serveur . La réponse du serveur c'est de demander le mot de passe pour m'identifier. Seulement le serveur n'est capable de m'identifier avec mon mot de passe que si on lui envoie ssh userserveur@ip_du_serveur.

Comment faire pour que ubuntu n'envoie plus userlocal au serveur mais un autre nom?
En gros je cherche à automatiser une tâche qui consiste à taper dans le terminal ssh userserveur@ipserveur puis cd /chemin/du/repertoire avec un chemin de répertoire qui varie, qui dépend de là où j'étais sur mon explorateur de fichiers, et qui m'empêche donc d'utiliser un alias.

merci smile

Hors ligne

#6 Le 29/09/2017, à 13:47

J5012

Re : [Résolu] nautilus: terminal distant

justement c'est la la difference entre nautilus qui ouvre une session sftp et un fuse over ssh :
- avec nautilus qui ouvre une session sftp, c'est nautilus qui initie toutes les requetes ... tout comme avec le terminal distant ...
- dans le cas de fuse over ssh, c'est ssh qui initie la session ...

Hors ligne

#7 Le 02/10/2017, à 10:31

Vbuntu

Re : [Résolu] nautilus: terminal distant

Bonjour,

Je viens d'installer fuse over ssh.
pour l'utiliser ils disent qu'il faut taper la commande suivante

sshfs [user@]hostname:[directory] mountpoint

j'ai envoyé cette commande adaptée à mon cas

sshfs user_serveur@ip_serveyur:/mon/home/sur/le/serveur/ /home/userlocal/le_nom_du_dossier_mountpoint/

il m'a monté le contenu du serveur dans le "mountpoint" donné, jusque là tout va bien, sauf que quand je fais clic droit "ouvrir dans un terminal"(il n'y a plus l'option ouvrir dans un terminal distal) , et que j'affiche le working directory, l'adresse qui apparaît c'est /home/userlocal/le_nom_du_dossier_mountpoint/chemin/d'un/répertoire_serveur_TRONQUé (il manque le chemin pour arriver à mon home sur le serveur, c'est à dire dans mon exemple "/mon/home/sur/le/serveur/"). De plus le bashrc lu par le terminal semble être celui de mon terminal local, et non celui du serveur. Je perds mes alias (pas bien grave) mais surtout l'accès à tous les programmes installés sur le serveur (les programmes de mon home à moi et surtout les programmes installés je ne sais où sur le serveur et dont je me sers quotidiennement).
En fait l'obtient les mêmes problèmes que quand je fais "ouvrir dans un terminal local" depuis nautilus. Les chemins sont modifiés, le bashrc n'est pas lu, les programmes ne sont pas utilisables.
Moi je cherche un moyen d'ouvrir un terminal qui taperait automatiquement

ssh userserveur@serveur

, me demanderait le mot de passe (ou si ça peut être entré automatiquement c'est encore mieux) puis

cd chemin/du/répertoire/sur/lequel/j'étais/dans l'interface graphique

c'est pas une solution qui me convient (ou alors j'ai pas compris comment me servir de fuse over ssh), mais merci quand même wink

Dernière modification par Vbuntu (Le 02/10/2017, à 10:44)

Hors ligne

#8 Le 02/10/2017, à 13:47

MicP

Re : [Résolu] nautilus: terminal distant

…un moyen d'ouvrir un terminal qui taperait automatiquement

ssh userserveur@serveur

, me demanderait le mot de passe (ou si ça peut être entré automatiquement c'est encore mieux) puis

cd chemin/du/répertoire/sur/lequel/j'étais/dans l'interface graphique

Le nom de ma machine locale est : debg53sw
Le nom de mon compte utilisateur sur la machine locale est : michel

Le nom de la machine distante est : mintvirt
Le nom du compte utilisateur sur la machine distante est : kevin
L'adresse IP de la machine distante est 192.168.122.199
Sur la machine distante est installé un serveur openssh (ce qui semble être le cas dans ta configuration)


=======
Depuis mon compte utilisateur sur la machine locale,
je crée une clef rsa qui n'aura pas de mot de passe :

michel@debg53sw ~ $ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/michel/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/michel/.ssh/id_rsa.
Your public key has been saved in /home/michel/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:N2MpxdIHVx3FgPmfVpTzyEquP6PyJH08187Jz/vZ1uo michel@mintvirt
The key's randomart image is:
+---[RSA 2048]----+
|          . .+o==|
|         o oo  o+|
|        . + .o oo|
|         o o. + o|
|        S *o . .o|
|         = +o  +.|
|        . o.+ o o|
|        .o..oo.+*|
|         ooo.+EB@|
+----[SHA256]-----+
michel@debg53sw ~ $ 

(j'ai juste tapé sur la touche Entrée à chaque demande)


=======
Une fois seulement, depuis mon compte utilisateur sur la machine locale,
je transmets ma clef rsa au compte utilisateur kevin de la machine distante
(ce qui, plus tard, me permettra de me connecter sur son compte sans avoir besoin de donner ni son mot de passe, ni le mien)

michel@debg53sw:~$ ssh-copy-id -i ~/.ssh/id_rsa.pub kevin@192.168.122.199
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
kevin@192.168.122.199's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'kevin@192.168.122.199'"
and check to make sure that only the key(s) you wanted were added.

michel@debg53sw:~$ 

(Pour que cette clef soit acceptée par le compte kevin de la machine distante, j'ai dû entrer le mot de passe du compte kevin)


=======
Je peux donc maintenant me connecter au compte kevin de la machine distante sans entrer de mot de passe
car le compte kevin me reconnaît puisqu'il a maintenant ma clef rsa

michel@debg53sw:~$ ssh kevin@192.168.122.199
Welcome to Linux Mint 18.2 Sonya (GNU/Linux 4.8.0-53-generic x86_64)

 * Documentation:  https://www.linuxmint.com
Last login: Sun Oct  1 12:31:33 2017 from 192.168.122.1
kevin@mintvirt ~ $ 

Voilà : je suis connecté sur le compte utilisateur kevin de la machine distante
sans avoir eu besoin d'entrer de mot de passe.


=======
Maintenant, je veux pouvoir me connecter au compte distant,
toujours sans entrer de mot de passe,
mais en me positionnant dans son répertoire ~/Documents

michel@debg53sw:~$ ssh -t kevin@192.168.122.199 "cd ~/Documents; exec \$SHELL --login"
kevin@mintvirt ~/Documents $

Bien sûr, j'aurais aussi pu faire la même chose
en indiquant un chemin absolu :

michel@debg53sw:~$ ssh -t kevin@192.168.122.199 "cd /home/kevin/Documents; exec \$SHELL --login"
kevin@mintvirt ~/Documents $

=======
Si ton navigateur de fichiers te permet de transmettre à un script ou une ligne de commande
une variable indiquant le chemin dans lequel tu veux aller,
voici la même commande qui utilise une variable pour le chemin :

michel@debg53sw:~$ sePositionnerDans="/home/kevin/Documents"
michel@debg53sw:~$ ssh -t kevin@192.168.122.199 "cd \"${sePositionnerDans}\"; exec \$SHELL --login"
kevin@mintvirt ~/Documents $ 

Dernière modification par MicP (Le 04/10/2017, à 11:39)

Hors ligne

#9 Le 02/10/2017, à 15:48

Vbuntu

Re : [Résolu] nautilus: terminal distant

merci MicP !
La partie sur la clé s'est bien passée, je peux me connecter sans mot de passe (c'est déjà ça de gagné! smile )

Ensuite ça se corse un peu plus (*)

Avant d'essayer de résoudre mon petit soucis concernant le chemin dans la ligne de commande, j'aimerai comprendre cette histoire de variable. La variable prendrait automatiquement en valeur le chemin du répertoire sur lequel je me trouve dans mon navigateur de fichiers? ou je dois la modifier manuellement ? (dans ce cas j'ai plus vite fait d'ouvrir le terminal sur le serveur de me connecter sur le serveur, et d'écrire là-bas directement le chemin avec un cd devant, la méthode classique).
(Mon navigateur de fichiers c'est Nautilus, celui de base dans Ubuntu 16.04 LTS)


(*) Automatiquement je suis connecté à une ""branche""  du serveur (c'est comme ça qu'on me l'avait expliqué quand j'avais jamais touché un terminal de ma vie), et je dois retourner à la racine du serveur pour accéder à une autre branche sur laquelle je peux travailler et où sont stockées toutes mes données. Quand je fais un "cd ../../bonne/branche dans la commande je n'arrive jamais à me connecter)

Hors ligne

#10 Le 02/10/2017, à 17:49

MicP

Re : [Résolu] nautilus: terminal distant

Bonjour

Je n'utilise pas Nautilus mais je pense qu'il doit être possible d'y récupérer une de ses variables qui correspondrait au chemin du fichier ou répertoire sélectionné avant le click-droit
C'est cette variable que je pensais utiliser dans la ligne de commande ssh (en remplacement de celle que j'avais créée pour le test : sePositionnerDans )

Mais plutôt que de vouloir refaire le monde, il me faudrait voir ce qu'il existe déjà dans Nautilus
avant de faire des essais sur un système ubuntu pour tenter d'y intégrer cette fonctionnalité
d'ouverture d'une fenêtre de terminal connectée à la machine distante avec le répertoire sélectionné comme répertoire courant.

EDIT : Je viens de faire un essais depuis Nautilus vers un serveur openssh et il m'a juste fallu entrer le mot de passe du compte utilisateur distant,
mais je vais essayer après avoir généré et transmis au serveur une clef sans mot de passe, pour voir.

Dernière modification par MicP (Le 02/10/2017, à 19:04)

Hors ligne

#11 Le 02/10/2017, à 18:20

Vbuntu

Re : [Résolu] nautilus: terminal distant

Bonsoir,

Et quel explorateur tu utilises?
Une idée d'où pourrait-être cette variable? Je dois la chercher dans un des menu? Dans un fichier config ou autre quelque part? Elle peut se cacher n'importe où dans le code source?

Dans nautilus il existe cette fonction (qui n'apparait que lorsqu'on navigue dans des répertoires du serveur) "ouvrir dans un terminal distant". Je pense qu'elle a la même fonction que "ouvrir dans un terminal local" (qui m'ouvre un terminal avec le bon working directory). Seulement ça essaye de me connecter au serveur avec un user qui n'est pas bon et je n'arrive pas à changer cet user.
J'ai épluché la doc Nautilus sur ce site, j'ai cherché sur google france et google.com en traduisant en anglais, et je ne trouve rien, comme si personne n'utilisait cette fonction de nautilus ou que personne ne rencontre le moindre problème hmm

Hors ligne

#12 Le 02/10/2017, à 18:34

MicP

Re : [Résolu] nautilus: terminal distant

Gagné !

Il suffit donc de générer la clef depuis la machine qui utilisera Nautilus et qui veut se connecter au serveur ssh (comme indiqué dans mon message),
et de la transmettre à un compte utilisateur (kevin dans mon exemple) existant sur le serveur ssh (dont l'adresse IP et 192.168.122.199 dans mon exemple)

Ensuite, avec Nautilus on pourra se connecter au serveur ssh par : Connexion à un serveur
en remplissant le champ Adresse du serveur avec :
ssh://kevin@192.168.122.199
(c'est le nom du compte utilisateur sur le serveur ssh et l'IP du serveur ssh )

Comme la clef sans mot de passe a été générée et transmise depuis la machine cliente (qui va utiliser Nautilus) vers le compte utilisateur sur le serveur ssh
la connexion et l'ouverture d'une fenêtre de terminal par le menu contextuel Ouvrir dans un terminal distant après avoir sélectionné un répertoire du serveur distant
se font sans aucune demande de mot de passe, avec le répertoire sélectionné comme répertoire courant dans la fenêtre de terminal.

Bien sûr, la clef ne concerne que le compte utilisateur qui l'a généré, pas la machine.

Dernière modification par MicP (Le 02/10/2017, à 19:16)

Hors ligne

#13 Le 03/10/2017, à 10:24

Vbuntu

Re : [Résolu] nautilus: terminal distant

Bravo!
ça marche et c'est parfait!

merci beaucoup!!! big_smile

Hors ligne

#14 Le 03/10/2017, à 12:21

MicP

Re : [Résolu] nautilus: terminal distant

Je remarque qu'après avoir indiqué à Nautilus dans Adresse du serveur :

ssh://kevin@192.168.122.199

Nautilus l'a transformé en :

sftp://kevin@192.168.122.199

=======
Pour ouvrir une fenêtre Nautilus directement dans le répertoire personnel Documents du compte utilisateur kevin sur le serveur ssh dont l'adresse IP est 192.168.122.199
il suffit d'indiquer dans le champ Adresse du serveur :

sftp://kevin@192.168.122.199/home/kevin/Documents

Dernière modification par MicP (Le 03/10/2017, à 12:23)

Hors ligne

#15 Le 03/10/2017, à 14:13

Vbuntu

Re : [Résolu] nautilus: terminal distant

oui tout à fait, il transforme ssh en sftp.


sftp://kevin@192.168.122.199/home/kevin/Documents

Si tu tapes ça, la première fois que tu accèdes au serveur monté tu tombes bien sur home/kevin/Documents, mais si tu recliques dans la colonne de gauche sur le serveur monté, tu retombes à la racine (ou au lieu de connexion par défaut pour mon cas). Pour conserver le chemin, il faut créer un signet par glissé/déposé du répertoire final, de la barre d'adresse de nautilus à la colonne de gauche où se trouvent les signets. wink

Hors ligne

#16 Le 03/10/2017, à 21:51

MicP

Re : [Résolu] nautilus: terminal distant

…Pour conserver le chemin, il faut créer un signet par glissé/déposé du répertoire final, de la barre d'adresse de nautilus à la colonne de gauche où se trouvent les signets. …

Cool !
Je n'avais pas vu le coup des signets

Du coup, Voilà : c'est complètement résolu maintenant

Bravo smile

Dernière modification par MicP (Le 03/10/2017, à 21:52)

Hors ligne

#17 Le 04/10/2017, à 10:33

kholo

Re : [Résolu] nautilus: terminal distant

salut,
Ctrl + D
pour enregistrer un signet sur le répertoire courant (comme firefox !)

Hors ligne