Comment puis-je voir si les utilisateurs sont connectés via sftp?

11

J'exécute un serveur de fichiers Linux pour mon bureau et nous utilisons SFTP pour que des partenaires distants se connectent et téléchargent des fichiers. Existe-t-il un moyen de voir s'il existe des connexions ou des connexions actives afin que je puisse savoir quand il est sûr d'effectuer une maintenance sur la machine?

Étant donné que la machine sert presque constamment de gros fichiers, la maintenance planifiée est souvent interrompue en raison du téléchargement de quelqu'un

aVeRTRAC
la source

Réponses:

11

Vous pouvez également faire:

ps -ef | grep '[s]shd' | grep -v ^root

qui devrait montrer toutes les sessions sshd (qui sont utilisées pour sftp). Je remarque sur ma machine que ma ligne de commande de processus sshd contient '$ USER @ notty', ce qui est logique car je ne suis pas connecté avec une session de terminal. Vous pouvez resserrer la grep ci-dessus avec:

ps -ef | grep '[s]shd:.*@notty' | grep -v ^root

BTW: les crochets dans le grep ne doivent pas afficher le processus 'grep sshd' dans la liste des processus. [s] shd correspond à sshd, mais ne correspond pas à lui-même. Il enregistre un «grep -v grep»

Rich Homolka
la source
4
J'ai fini par utiliser netstat -atn | grep ':22'pour voir s'il y avait du trafic ouvert sur le port 22. J'ai également constaté que je pouvais vérifier les journaux sshd, situés dans '/var/log/auth.log' sur mon système pour voir si tous les utilisateurs qui avaient ouvert un session avait été close.
aVeRTRAC
2

Vous pouvez également essayer fuser -u ssh/tcp

Uli
la source
1

Je pense que vous pouvez utiliser le programme de ligne de commande whopour voir cela. J'ai remarqué certains rapports que cela ne fonctionne pas, mais je pense toujours que cela peut fonctionner (c'est peut-être un paramètre ssh).

sftp est construit sur SSH . Il représente le "SSH File Transfer Protocol". Et lorsque vous êtes connecté via ssh, 'who' vous inclura en tant qu'utilisateur connecté avec sa sortie. Je m'attends donc à ce que cela fonctionne également avec les sessions sftp actives.

Cette discussion de 2008 suggère également que vous pouvez utiliser «netstat» pour cela. Il comprend également une suggestion pour exécuter «qui» via «regarder» afin que vous puissiez voir les mises à jour sans rien faire.

James T Snell
la source
1
qui n'affiche pas les utilisateurs connectés via ssh (je viens de me connecter depuis mon ordinateur portable et j'ai vérifié).
aVeRTRAC
C'est farfelu, c'est GOT pour être un cadre .. Comme je suis sacrément sûr qu'il l'a fait pour moi .. depuis des années et des années et des années ..
James T Snell
Une idée de l'endroit où serait ce paramètre? J'ai essayé cela sur un serveur public dans mon travail et j'ai récupéré ce qui ressemble à des résultats réalistes avec plusieurs utilisateurs répertoriés.
aVeRTRAC
1
qui indique qui exécute actuellement un shell de connexion. Selon ce que l'utilisateur exécute, il peut ou non compter comme un shell de connexion. La moitié serveur de sftp ne le fait pas, d'où la raison pour laquelle les sessions sftp n'apparaissent pas dans qui.
Perkins