aker-gateway / Aker

SSH bastion/jump host/jumpserver
Other
568 stars 81 forks source link

handling non-unicode chrs #10

Closed anazmy closed 7 years ago

anazmy commented 7 years ago

Reproducer : on a logged session try to produce non-unicode chrs , for example use head -8 /dev/urandom , you will get an error :

File "/usr/lib64/python2.7/site-packages/urwid/container.py", line 1127, in keypress
                                                                                        return self.body.keypress( (maxcol, remaining), key )
                   File "/usr/lib64/python2.7/site-packages/urwid/listbox.py", line 986, in keypress
                                                                                                        key = focus_widget.keypress((maxcol,),key)
                        File "/usr/bin/aker/tui.py", line 27, in keypress
                                                                             urwid.emit_signal(self, 'connect')
                                                                                                                 File "/usr/lib64/python2.7/site-packages/urwid/signals.py", line 263, in emit
                                                                      result |= self._call_callback(callback, user_arg, user_args, args)
              File "/usr/lib64/python2.7/site-packages/urwid/signals.py", line 293, in _call_callback
                                                                                                         return bool(callback(*args_to_pass))
                   File "/usr/bin/aker/tui.py", line 61, in host_chosen
                                                                           self.aker.init_connection(choice)
                                                                                                              File "/bin/aker/aker.py", line 125, in init_connection
                                            session.start_session()
                                                                     File "/usr/bin/aker/session.py", line 60, in start_session
       self._client.start_session(self.host_user,priv_key)
                                                            File "/usr/bin/aker/SSHClient.py", line 60, in start_session
                                                                                                                            raise e
       UnicodeDecodeError: 'utf8' codec can't decode byte 0xcf in position 1: invalid continuation byte
anazmy commented 7 years ago

pyte looks like a good candidate to handle this situations , gotta check on how to integrate it