# Python: ChannelException: (1, 'Administratively prohibited')

**URL:** <https://www.debian-fr.org/t/python-channelexception-1-administratively-prohibited/65276>\
**Category:** Programmation\
**Created:** [Février 21, 2016, 9:26 UTC](https://www.debian-fr.org/t/python-channelexception-1-administratively-prohibited/65276 "2016-02-21T21:26:44Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![totola](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/t/3be4f8/32.png) [@totola](https://www.debian-fr.org/u/totola)\
**Post date:** [Février 21, 2016, 9:26 UTC](https://www.debian-fr.org/t/python-channelexception-1-administratively-prohibited/65276/1 "2016-02-21T21:26:44Z")

</div>

Bonjour,  
j’utilise le module fabric de python pour exécuter des commandes sur des postes distants avec une interface python (tkinter)… ça semble marcher bien, un temps du moins, mais au bout d’un moment (je n’arrive pas à savoir quand, ça paraît plus ou moins aléatoire), j’obtiens cette erreur, et je ne peux plus rien faire à part fermer brutalement le programme et le relancer:

[code] Warning: run() received nonzero return code 1 while executing ‘kill $(cat PIDpt.txt)’!

[172.16.125.12] run: kill $(cat PIDpt.txt)  
Exception in Tkinter callback  
Traceback (most recent call last):  
File “/usr/lib/python2.7/lib-tk/Tkinter.py”, line 1413, in **call**  
return self.func(\*args)  
File “[PyPaFi3UTF8.py](http://PyPaFi3UTF8.py)”, line 1396, in ParlerTous  
effacer\_tous(2)  
File “[PyPaFi3UTF8.py](http://PyPaFi3UTF8.py)”, line 1343, in effacer\_tous  
run(“kill $(cat PIDpt.txt)”)  
File “/usr/local/lib/python2.7/dist-packages/fabric/network.py”, line 647, in host\_prompting\_wrapper  
return func(\*args, \*\*kwargs)  
File “/usr/local/lib/python2.7/dist-packages/fabric/operations.py”, line 1054, in run  
shell\_escape=shell\_escape)  
File “/usr/local/lib/python2.7/dist-packages/fabric/operations.py”, line 921, in \_run\_command  
channel=default\_channel(), command=wrapped\_command, pty=pty,  
File “/usr/local/lib/python2.7/dist-packages/fabric/state.py”, line 397, in default\_channel  
chan = \_open\_session()  
File “/usr/local/lib/python2.7/dist-packages/fabric/state.py”, line 389, in \_open\_session  
return connections[env.host\_string].get\_transport().open\_session()  
File “/usr/local/lib/python2.7/dist-packages/paramiko/transport.py”, line 615, in open\_session  
max\_packet\_size=max\_packet\_size)  
File “/usr/local/lib/python2.7/dist-packages/paramiko/transport.py”, line 740, in open\_channel  
raise e  
ChannelException: (1, ‘Administratively prohibited’)[/code]

En cherchant un peu sur le net, ‘Adminitratively prohibited’ signifierait que l’hôte a refusé la connection ou quelque chose comme ça (c’est en english et assez technique…)  
Ce que je ne comprends pas c’est le caractère aléatoire de l’erreur… ça marche très bien un bon bout de temps puis ça va se mettre à bloquer…

Pour info, j’ai la fonction suivante pour se connecter:

` def connecter_ssh(numero):
			env.host_string = '{}'.format(self.IP[numero])
			env.user = '{}'.format(self.user[numero])
			env.password = '{}'.format(self.passwd[numero])`

et mes fonctions que je lance sont les suivantes:

[code] def parler\_tous(poste):  
if self.couleur[poste]==‘forestgreen’:  
def callback():  
connecter\_ssh(poste)  
with settings(warn\_only=True):  
run(“cvlc {} & echo $! \> PIDpt.txt”.format(self.IP\_multicast[0]))  
self.tPt = threading.Thread(target=callback)  
self.tPt.start()  
else:  
print(‘poste {} non connecté’.format(poste))

```
	def effacer_tous(poste):
		if self.couleur[poste]=='forestgreen':
			connecter_ssh(poste)
			print 'coucou'
			with settings(warn_only=True):
				run("kill $(cat PIDpt.txt)")
			self.tPt._Thread__stop()
		else:
			print('poste {} non connecté'.format(poste))[/code]

```

J’ai rajouté un ‘coucou’ qui a l’air de bien s’executer, le problème est bien sur la commande run(“kill $(cat PIDpt.txt)”)…

Merci de votre aide  
🙂

---

<div class="post-metadata">

**Author:** ![totola](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/t/3be4f8/32.png) [@totola](https://www.debian-fr.org/u/totola)\
**Post date:** [Février 21, 2016, 9:26 UTC](https://www.debian-fr.org/t/python-channelexception-1-administratively-prohibited/65276/2 "2016-02-21T21:26:46Z")

</div>

ça ne serait pas un truc comme ça:

[http://tracker.ceph.com/issues/9908](http://tracker.ceph.com/issues/9908)

[quote]I had the same issue, so i understood that my Linux box was not allowing more than 10 sessions, so i added  
Maxsession 100 in/etc/ssh/sshd\_config and it restarted the service, and now Paramiko is able to make more than 10 concurrent session.[/quote]

Par contre je ne trouve pas Maxsession dans /etc/ssh/sshd\_config…

[edit]  
Bah je l’ai rajouté à la fin du fichier… Par contre ça à l’air d’être:

```auto

```

Et ça à l’air de marcher, je ne retrouve plus cette erreur!
