spyder-ide / spyder

Official repository for Spyder - The Scientific Python Development Environment
https://www.spyder-ide.org
MIT License
8.29k stars 1.61k forks source link

Remote connections crash #22623

Open bjsilver opened 2 weeks ago

bjsilver commented 2 weeks ago

Description

What steps will reproduce the problem?

When I try to use the new 'Remote connections' window to connect to a remote console using a 'Key file' as the authentication method, an internal problem is encountered and the issue reporter appears.

Traceback

Traceback (most recent call last):
  File "/home/ben/miniforge3/envs/spyder6/lib/python3.12/site-packages/spyder/plugins/remoteclient/widgets/connectiondialog.py", line 927, in _start_server
    self._save_connection_info()
  File "/home/ben/miniforge3/envs/spyder6/lib/python3.12/site-packages/spyder/plugins/remoteclient/widgets/connectiondialog.py", line 845, in _save_connection_info
    page.save_to_conf()
  File "/home/ben/miniforge3/envs/spyder6/lib/python3.12/site-packages/spyder/widgets/config.py", line 400, in save_to_conf
    self.set_option(
  File "/home/ben/miniforge3/envs/spyder6/lib/python3.12/site-packages/spyder/widgets/config.py", line 60, in set_option
    CONF.set(
  File "/home/ben/miniforge3/envs/spyder6/lib/python3.12/site-packages/spyder/config/manager.py", line 556, in set
    keyring.set_password(section, option, value)
  File "/home/ben/miniforge3/envs/spyder6/lib/python3.12/site-packages/keyring/core.py", line 68, in set_password
    get_keyring().set_password(service_name, username, password)
  File "/home/ben/miniforge3/envs/spyder6/lib/python3.12/site-packages/keyring/backend.py", line 60, in wrapper
    return orig(self, system, username, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ben/miniforge3/envs/spyder6/lib/python3.12/site-packages/keyring/backends/fail.py", line 28, in get_password
    raise NoKeyringError(msg)
keyring.errors.NoKeyringError: No recommended backend was available. Install a recommended 3rd party backend package; or, install the keyrings.alt package if you want to use the non-recommended backends. See https://pypi.org/project/keyring for details.

Versions

Dependencies

# Mandatory:
aiohttp >=3.9.3                  :  3.10.8 (OK)
asyncssh >=2.14.0,<3.0.0         :  2.17.0 (OK)
atomicwrites >=1.2.0             :  1.4.1 (OK)
chardet >=2.0.0                  :  5.2.0 (OK)
cloudpickle >=0.5.0              :  3.0.0 (OK)
cookiecutter >=1.6.0             :  2.6.0 (OK)
diff_match_patch >=20181111      :  20230430 (OK)
github >=2.3.0                   :  2.4.0 (OK)
importlib_metadata >=4.6.0       :  8.5.0 (OK)
intervaltree >=3.0.2             :  3.1.0 (OK)
IPython >=8.13.0,<9.0.0,!=8.17.1 :  8.27.0 (OK)
jedi >=0.17.2,<0.20.0            :  0.19.1 (OK)
jellyfish >=0.7                  :  1.1.0 (OK)
jsonschema >=3.2.0               :  4.23.0 (OK)
keyring >=17.0.0                 :  25.4.1 (OK)
nbconvert >=4.0                  :  7.16.4 (OK)
numpydoc >=0.6.0                 :  1.8.0 (OK)
parso >=0.7.0,<0.9.0             :  0.8.4 (OK)
pexpect >=4.4.0                  :  4.9.0 (OK)
pickleshare >=0.4                :  0.7.5 (OK)
psutil >=5.3                     :  6.0.0 (OK)
pygments >=2.0                   :  2.18.0 (OK)
pylint >=3.1,<4                  :  3.3.1 (OK)
pylint_venv >=3.0.2              :  3.0.3 (OK)
pyls_spyder >=0.4.0              :  0.4.0 (OK)
pylsp >=1.12.0,<1.13.0           :  1.12.0 (OK)
pylsp_black >=2.0.0,<3.0.0       :  2.0.0 (OK)
pyuca >=1.2                      :  1.2 (OK)
qdarkstyle >=3.2.0,<3.3.0        :  3.2.3 (OK)
qstylizer >=0.2.2                :  0.2.3 (OK)
qtawesome >=1.3.1,<1.4.0         :  1.3.1 (OK)
qtconsole >=5.6.0,<5.7.0         :  5.6.0 (OK)
qtpy >=2.4.0                     :  2.4.1 (OK)
rtree >=0.9.7                    :  1.3.0 (OK)
setuptools >=49.6.0              :  75.1.0 (OK)
sphinx >=0.6.6                   :  8.0.2 (OK)
spyder_kernels >=3.0.0,<3.1.0    :  3.0.0 (OK)
superqt >=0.6.2,<1.0.0           :  0.6.7 (OK)
textdistance >=4.2.0             :  4.6.2 (OK)
three_merge >=0.1.1              :  0.1.1 (OK)
watchdog >=0.10.3                :  5.0.3 (OK)
xdg >=0.26                       :  0.28 (OK)
yarl >=1.9.4                     :  1.13.1 (OK)
zmq >=24.0.0                     :  26.2.0 (OK)

# Optional:
cython >=0.21                    :  None (NOK)
matplotlib >=3.0.0               :  None (NOK)
numpy >=1.7                      :  None (NOK)
pandas >=1.1.1                   :  None (NOK)
scipy >=0.17.0                   :  None (NOK)
sympy >=0.7.3                    :  None (NOK)

Environment

Environment ``` # packages in environment at /home/ben/miniforge3/envs/spyder6: # # Name Version Build Channel _libgcc_mutex 0.1 conda_forge conda-forge _openmp_mutex 4.5 2_gnu conda-forge aiohappyeyeballs 2.4.3 pyhd8ed1ab_0 conda-forge aiohttp 3.10.8 py312h66e93f0_0 conda-forge aiosignal 1.3.1 pyhd8ed1ab_0 conda-forge alabaster 1.0.0 pyhd8ed1ab_0 conda-forge alsa-lib 1.2.12 h4ab18f5_0 conda-forge arrow 1.3.0 pyhd8ed1ab_0 conda-forge astroid 3.3.4 py312h7900ff3_0 conda-forge asttokens 2.4.1 pyhd8ed1ab_0 conda-forge asyncssh 2.17.0 pyhd8ed1ab_0 conda-forge atomicwrites 1.4.1 pyhd8ed1ab_0 conda-forge attr 2.5.1 h166bdaf_1 conda-forge attrs 24.2.0 pyh71513ae_0 conda-forge autopep8 2.0.4 pyhd8ed1ab_0 conda-forge babel 2.14.0 pyhd8ed1ab_0 conda-forge backports 1.0 pyhd8ed1ab_4 conda-forge backports.tarfile 1.0.0 pyhd8ed1ab_1 conda-forge beautifulsoup4 4.12.3 pyha770c72_0 conda-forge binaryornot 0.4.4 py_1 conda-forge black 24.8.0 py312h7900ff3_1 conda-forge bleach 6.1.0 pyhd8ed1ab_0 conda-forge brotli-python 1.1.0 py312h2ec8cdc_2 conda-forge bzip2 1.0.8 h4bc722e_7 conda-forge ca-certificates 2024.8.30 hbcca054_0 conda-forge cairo 1.18.0 hebfffa5_3 conda-forge certifi 2024.8.30 pyhd8ed1ab_0 conda-forge cffi 1.17.1 py312h06ac9bb_0 conda-forge chardet 5.2.0 py312h7900ff3_2 conda-forge charset-normalizer 3.3.2 pyhd8ed1ab_0 conda-forge click 8.1.7 unix_pyh707e725_0 conda-forge cloudpickle 3.0.0 pyhd8ed1ab_0 conda-forge colorama 0.4.6 pyhd8ed1ab_0 conda-forge comm 0.2.2 pyhd8ed1ab_0 conda-forge cookiecutter 2.6.0 pyhca7485f_0 conda-forge cryptography 43.0.1 py312hda17c39_0 conda-forge dbus 1.13.6 h5008d03_3 conda-forge debugpy 1.8.6 py312h2ec8cdc_0 conda-forge decorator 5.1.1 pyhd8ed1ab_0 conda-forge defusedxml 0.7.1 pyhd8ed1ab_0 conda-forge deprecated 1.2.14 pyh1a96a4e_0 conda-forge diff-match-patch 20230430 pyhd8ed1ab_0 conda-forge dill 0.3.9 pyhd8ed1ab_0 conda-forge docstring-to-markdown 0.15 pyhd8ed1ab_0 conda-forge docutils 0.21.2 pyhd8ed1ab_0 conda-forge entrypoints 0.4 pyhd8ed1ab_0 conda-forge exceptiongroup 1.2.2 pyhd8ed1ab_0 conda-forge executing 2.1.0 pyhd8ed1ab_0 conda-forge expat 2.6.3 h5888daf_0 conda-forge fcitx-qt5 1.2.7 h51b374b_1 conda-forge flake8 7.1.1 pyhd8ed1ab_0 conda-forge font-ttf-dejavu-sans-mono 2.37 hab24e00_0 conda-forge font-ttf-inconsolata 3.000 h77eed37_0 conda-forge font-ttf-source-code-pro 2.038 h77eed37_0 conda-forge font-ttf-ubuntu 0.83 h77eed37_3 conda-forge fontconfig 2.14.2 h14ed4e7_0 conda-forge fonts-conda-ecosystem 1 0 conda-forge fonts-conda-forge 1 0 conda-forge freetype 2.12.1 h267a509_2 conda-forge frozenlist 1.4.1 py312h66e93f0_1 conda-forge fzf 0.55.0 ha8f183a_0 conda-forge gettext 0.22.5 he02047a_3 conda-forge gettext-tools 0.22.5 he02047a_3 conda-forge giflib 5.2.2 hd590300_0 conda-forge glib 2.82.1 h2ff4ddf_0 conda-forge glib-tools 2.82.1 h4833e2c_0 conda-forge graphite2 1.3.13 h59595ed_1003 conda-forge gst-plugins-base 1.24.7 h0a52356_0 conda-forge gstreamer 1.24.7 hf3bb09a_0 conda-forge h2 4.1.0 pyhd8ed1ab_0 conda-forge harfbuzz 9.0.0 hda332d3_1 conda-forge hpack 4.0.0 pyh9f0ad1d_0 conda-forge hyperframe 6.0.1 pyhd8ed1ab_0 conda-forge icu 75.1 he02047a_0 conda-forge idna 3.10 pyhd8ed1ab_0 conda-forge imagesize 1.4.1 pyhd8ed1ab_0 conda-forge importlib-metadata 8.5.0 pyha770c72_0 conda-forge importlib_metadata 8.5.0 hd8ed1ab_0 conda-forge importlib_resources 6.4.5 pyhd8ed1ab_0 conda-forge inflection 0.5.1 pyh9f0ad1d_0 conda-forge intervaltree 3.1.0 pyhd8ed1ab_1 conda-forge ipykernel 6.29.5 pyh3099207_0 conda-forge ipython 8.27.0 pyh707e725_0 conda-forge isort 5.13.2 pyhd8ed1ab_0 conda-forge jaraco.classes 3.4.0 pyhd8ed1ab_1 conda-forge jaraco.context 5.3.0 pyhd8ed1ab_1 conda-forge jaraco.functools 4.0.0 pyhd8ed1ab_0 conda-forge jedi 0.19.1 pyhd8ed1ab_0 conda-forge jeepney 0.8.0 pyhd8ed1ab_0 conda-forge jellyfish 1.1.0 py312h12e396e_1 conda-forge jinja2 3.1.4 pyhd8ed1ab_0 conda-forge jsonschema 4.23.0 pyhd8ed1ab_0 conda-forge jsonschema-specifications 2023.12.1 pyhd8ed1ab_0 conda-forge jupyter_client 8.6.3 pyhd8ed1ab_0 conda-forge jupyter_core 5.7.2 pyh31011fe_1 conda-forge jupyterlab_pygments 0.3.0 pyhd8ed1ab_1 conda-forge keyring 25.4.1 pyha804496_0 conda-forge keyutils 1.6.1 h166bdaf_0 conda-forge krb5 1.21.3 h659f571_0 conda-forge lame 3.100 h166bdaf_1003 conda-forge ld_impl_linux-64 2.43 h712a8e2_1 conda-forge lerc 4.0.0 h27087fc_0 conda-forge libasprintf 0.22.5 he8f35ee_3 conda-forge libasprintf-devel 0.22.5 he8f35ee_3 conda-forge libcap 2.69 h0f662aa_0 conda-forge libclang-cpp15 15.0.7 default_h127d8a8_5 conda-forge libclang13 19.1.0 default_h9c6a7e4_0 conda-forge libcups 2.3.3 h4637d8d_4 conda-forge libdeflate 1.21 h4bc722e_0 conda-forge libdrm 2.4.123 hb9d3cd8_0 conda-forge libedit 3.1.20191231 he28a2e2_2 conda-forge libegl 1.7.0 ha4b6fd6_0 conda-forge libevent 2.1.12 hf998b51_1 conda-forge libexpat 2.6.3 h5888daf_0 conda-forge libffi 3.4.2 h7f98852_5 conda-forge libflac 1.4.3 h59595ed_0 conda-forge libgcc 14.1.0 h77fa898_1 conda-forge libgcc-ng 14.1.0 h69a702a_1 conda-forge libgcrypt 1.11.0 h4ab18f5_1 conda-forge libgettextpo 0.22.5 he02047a_3 conda-forge libgettextpo-devel 0.22.5 he02047a_3 conda-forge libgl 1.7.0 ha4b6fd6_0 conda-forge libglib 2.82.1 h2ff4ddf_0 conda-forge libglvnd 1.7.0 ha4b6fd6_0 conda-forge libglx 1.7.0 ha4b6fd6_0 conda-forge libgomp 14.1.0 h77fa898_1 conda-forge libgpg-error 1.50 h4f305b6_0 conda-forge libiconv 1.17 hd590300_2 conda-forge libjpeg-turbo 3.0.0 hd590300_1 conda-forge libllvm15 15.0.7 hb3ce162_4 conda-forge libllvm19 19.1.0 ha7bfdaf_0 conda-forge libnsl 2.0.1 hd590300_0 conda-forge libogg 1.3.5 h4ab18f5_0 conda-forge libopus 1.3.1 h7f98852_1 conda-forge libpciaccess 0.18 hd590300_0 conda-forge libpng 1.6.44 hadc24fc_0 conda-forge libpq 16.4 h2d7952a_2 conda-forge libsndfile 1.2.2 hc60ed4a_1 conda-forge libsodium 1.0.20 h4ab18f5_0 conda-forge libspatialindex 2.0.0 he02047a_0 conda-forge libsqlite 3.46.1 hadc24fc_0 conda-forge libstdcxx 14.1.0 hc0a3c3a_1 conda-forge libstdcxx-ng 14.1.0 h4852527_1 conda-forge libsystemd0 256.6 h2774228_0 conda-forge libtiff 4.7.0 h6565414_0 conda-forge libuuid 2.38.1 h0b41bf4_0 conda-forge libvorbis 1.3.7 h9c3ff4c_0 conda-forge libwebp 1.4.0 h2c329e2_0 conda-forge libwebp-base 1.4.0 hd590300_0 conda-forge libxcb 1.17.0 h8a09558_0 conda-forge libxcrypt 4.4.36 hd590300_1 conda-forge libxkbcommon 1.7.0 h2c5496b_1 conda-forge libxml2 2.12.7 he7c6b58_4 conda-forge libzlib 1.3.1 h4ab18f5_1 conda-forge lz4-c 1.9.4 hcb278e6_0 conda-forge markdown-it-py 3.0.0 pyhd8ed1ab_0 conda-forge markupsafe 2.1.5 py312h66e93f0_1 conda-forge matplotlib-inline 0.1.7 pyhd8ed1ab_0 conda-forge mccabe 0.7.0 pyhd8ed1ab_0 conda-forge mdurl 0.1.2 pyhd8ed1ab_0 conda-forge mistune 3.0.2 pyhd8ed1ab_0 conda-forge more-itertools 10.5.0 pyhd8ed1ab_0 conda-forge mpg123 1.32.6 h59595ed_0 conda-forge multidict 6.1.0 py312h66e93f0_0 conda-forge mypy_extensions 1.0.0 pyha770c72_0 conda-forge mysql-common 9.0.1 h266115a_1 conda-forge mysql-libs 9.0.1 he0572af_1 conda-forge nbclient 0.10.0 pyhd8ed1ab_0 conda-forge nbconvert 7.16.4 hd8ed1ab_1 conda-forge nbconvert-core 7.16.4 pyhd8ed1ab_1 conda-forge nbconvert-pandoc 7.16.4 hd8ed1ab_1 conda-forge nbformat 5.10.4 pyhd8ed1ab_0 conda-forge ncurses 6.5 he02047a_1 conda-forge nest-asyncio 1.6.0 pyhd8ed1ab_0 conda-forge nspr 4.35 h27087fc_0 conda-forge nss 3.105 hd34e28f_0 conda-forge numpydoc 1.8.0 pyhd8ed1ab_0 conda-forge openssl 3.3.2 hb9d3cd8_0 conda-forge packaging 24.1 pyhd8ed1ab_0 conda-forge pandoc 3.4 ha770c72_0 conda-forge pandocfilters 1.5.0 pyhd8ed1ab_0 conda-forge parso 0.8.4 pyhd8ed1ab_0 conda-forge pathspec 0.12.1 pyhd8ed1ab_0 conda-forge pcre2 10.44 hba22ea6_2 conda-forge pexpect 4.9.0 pyhd8ed1ab_0 conda-forge pickleshare 0.7.5 py_1003 conda-forge pip 24.2 pyh8b19718_1 conda-forge pixman 0.43.2 h59595ed_0 conda-forge pkgutil-resolve-name 1.3.10 pyhd8ed1ab_1 conda-forge platformdirs 4.3.6 pyhd8ed1ab_0 conda-forge pluggy 1.5.0 pyhd8ed1ab_0 conda-forge ply 3.11 pyhd8ed1ab_2 conda-forge prompt-toolkit 3.0.48 pyha770c72_0 conda-forge psutil 6.0.0 py312h66e93f0_1 conda-forge pthread-stubs 0.4 hb9d3cd8_1002 conda-forge ptyprocess 0.7.0 pyhd3deb0d_0 conda-forge pulseaudio-client 17.0 hb77b528_0 conda-forge pure_eval 0.2.3 pyhd8ed1ab_0 conda-forge pycodestyle 2.12.1 pyhd8ed1ab_0 conda-forge pyconify 0.1.6 pyhd8ed1ab_0 conda-forge pycparser 2.22 pyhd8ed1ab_0 conda-forge pydocstyle 6.3.0 pyhd8ed1ab_0 conda-forge pyflakes 3.2.0 pyhd8ed1ab_0 conda-forge pygithub 2.4.0 pyhd8ed1ab_0 conda-forge pygments 2.18.0 pyhd8ed1ab_0 conda-forge pyjwt 2.9.0 pyhd8ed1ab_1 conda-forge pylint 3.3.1 pyhd8ed1ab_0 conda-forge pylint-venv 3.0.3 pyhd8ed1ab_0 conda-forge pyls-spyder 0.4.0 pyhd8ed1ab_0 conda-forge pynacl 1.5.0 py312h66e93f0_4 conda-forge pyopenssl 24.2.1 pyhd8ed1ab_2 conda-forge pyqt 5.15.9 py312h949fe66_5 conda-forge pyqt5-sip 12.12.2 py312h30efb56_5 conda-forge pyqtwebengine 5.15.9 py312hbd9a932_5 conda-forge pysocks 1.7.1 pyha2e5f31_6 conda-forge python 3.12.6 hc5c86c4_2_cpython conda-forge python-dateutil 2.9.0 pyhd8ed1ab_0 conda-forge python-fastjsonschema 2.20.0 pyhd8ed1ab_0 conda-forge python-gssapi 1.8.3 py312h55de72e_0 conda-forge python-lsp-black 2.0.0 pyhd8ed1ab_0 conda-forge python-lsp-jsonrpc 1.1.2 pyhd8ed1ab_0 conda-forge python-lsp-server 1.12.0 pyhd8ed1ab_0 conda-forge python-lsp-server-base 1.12.0 pyhd8ed1ab_0 conda-forge python-slugify 8.0.4 pyhd8ed1ab_0 conda-forge python_abi 3.12 5_cp312 conda-forge pytoolconfig 1.2.5 pyhd8ed1ab_0 conda-forge pytz 2024.2 pyhd8ed1ab_0 conda-forge pyuca 1.2 py_1 conda-forge pyxdg 0.28 pyhd8ed1ab_0 conda-forge pyyaml 6.0.2 py312h66e93f0_1 conda-forge pyzmq 26.2.0 py312hbf22597_2 conda-forge qdarkstyle 3.2.3 pyhd8ed1ab_0 conda-forge qstylizer 0.2.3 pyhd8ed1ab_0 conda-forge qt-main 5.15.8 h3155989_26 conda-forge qt-webengine 5.15.8 h8f589be_8 conda-forge qtawesome 1.3.1 pyh9208f05_0 conda-forge qtconsole 5.6.0 pyhd8ed1ab_0 conda-forge qtconsole-base 5.6.0 pyha770c72_0 conda-forge qtpy 2.4.1 pyhd8ed1ab_0 conda-forge readline 8.2 h8228510_1 conda-forge referencing 0.35.1 pyhd8ed1ab_0 conda-forge requests 2.32.3 pyhd8ed1ab_0 conda-forge rich 13.9.1 pyhd8ed1ab_0 conda-forge rope 1.13.0 pyhd8ed1ab_0 conda-forge rpds-py 0.20.0 py312h12e396e_1 conda-forge rtree 1.3.0 py312h18067a2_2 conda-forge secretstorage 3.3.3 py312h7900ff3_3 conda-forge setuptools 75.1.0 pyhd8ed1ab_0 conda-forge sip 6.7.12 py312h30efb56_0 conda-forge six 1.16.0 pyh6c4a22f_0 conda-forge snowballstemmer 2.2.0 pyhd8ed1ab_0 conda-forge sortedcontainers 2.4.0 pyhd8ed1ab_0 conda-forge soupsieve 2.5 pyhd8ed1ab_1 conda-forge sphinx 8.0.2 pyhd8ed1ab_0 conda-forge sphinxcontrib-applehelp 2.0.0 pyhd8ed1ab_0 conda-forge sphinxcontrib-devhelp 2.0.0 pyhd8ed1ab_0 conda-forge sphinxcontrib-htmlhelp 2.1.0 pyhd8ed1ab_0 conda-forge sphinxcontrib-jsmath 1.0.1 pyhd8ed1ab_0 conda-forge sphinxcontrib-qthelp 2.0.0 pyhd8ed1ab_0 conda-forge sphinxcontrib-serializinghtml 1.1.10 pyhd8ed1ab_0 conda-forge spyder 6.0.1 py312h7900ff3_2 conda-forge spyder-kernels 3.0.0 unix_pyh707e725_0 conda-forge stack_data 0.6.2 pyhd8ed1ab_0 conda-forge superqt 0.6.7 pyh9208f05_0 conda-forge tabulate 0.9.0 pyhd8ed1ab_1 conda-forge text-unidecode 1.3 pyhd8ed1ab_1 conda-forge textdistance 4.6.3 pyhd8ed1ab_0 conda-forge three-merge 0.1.1 pyh9f0ad1d_0 conda-forge tinycss2 1.3.0 pyhd8ed1ab_0 conda-forge tk 8.6.13 noxft_h4845f30_101 conda-forge toml 0.10.2 pyhd8ed1ab_0 conda-forge tomli 2.0.1 pyhd8ed1ab_0 conda-forge tomlkit 0.13.2 pyha770c72_0 conda-forge tornado 6.4.1 py312h66e93f0_1 conda-forge traitlets 5.14.3 pyhd8ed1ab_0 conda-forge types-python-dateutil 2.9.0.20240906 pyhd8ed1ab_0 conda-forge typing-extensions 4.12.2 hd8ed1ab_0 conda-forge typing_extensions 4.12.2 pyha770c72_0 conda-forge tzdata 2024a h8827d51_1 conda-forge ujson 5.10.0 py312h2ec8cdc_1 conda-forge urllib3 2.2.3 pyhd8ed1ab_0 conda-forge watchdog 5.0.3 py312h7900ff3_0 conda-forge wcwidth 0.2.13 pyhd8ed1ab_0 conda-forge webencodings 0.5.1 pyhd8ed1ab_2 conda-forge whatthepatch 1.0.6 pyhd8ed1ab_0 conda-forge wheel 0.44.0 pyhd8ed1ab_0 conda-forge wrapt 1.16.0 py312h66e93f0_1 conda-forge wurlitzer 3.1.1 pyhd8ed1ab_0 conda-forge xcb-util 0.4.1 hb711507_2 conda-forge xcb-util-image 0.4.0 hb711507_2 conda-forge xcb-util-keysyms 0.4.1 hb711507_0 conda-forge xcb-util-renderutil 0.3.10 hb711507_0 conda-forge xcb-util-wm 0.4.2 hb711507_0 conda-forge xkeyboard-config 2.43 hb9d3cd8_0 conda-forge xorg-compositeproto 0.4.2 hb9d3cd8_1002 conda-forge xorg-damageproto 1.2.1 hb9d3cd8_1003 conda-forge xorg-libice 1.1.1 hb9d3cd8_1 conda-forge xorg-libsm 1.2.4 he73a12e_1 conda-forge xorg-libx11 1.8.10 h4f16b4b_0 conda-forge xorg-libxau 1.0.11 hb9d3cd8_1 conda-forge xorg-libxcomposite 0.4.6 h0b41bf4_1 conda-forge xorg-libxdamage 1.1.5 h7f98852_1 conda-forge xorg-libxdmcp 1.1.5 hb9d3cd8_0 conda-forge xorg-libxext 1.3.6 hb9d3cd8_0 conda-forge xorg-libxfixes 6.0.1 hb9d3cd8_0 conda-forge xorg-libxi 1.8.2 hb9d3cd8_0 conda-forge xorg-libxrandr 1.5.4 hb9d3cd8_0 conda-forge xorg-libxrender 0.9.11 hb9d3cd8_1 conda-forge xorg-libxtst 1.2.5 hb9d3cd8_1 conda-forge xorg-libxxf86vm 1.1.5 hb9d3cd8_2 conda-forge xorg-util-macros 1.20.1 hb9d3cd8_0 conda-forge xorg-xextproto 7.3.0 hb9d3cd8_1004 conda-forge xorg-xf86vidmodeproto 2.3.1 hb9d3cd8_1003 conda-forge xorg-xorgproto 2024.1 hb9d3cd8_1 conda-forge xorg-xproto 7.0.31 hb9d3cd8_1008 conda-forge xz 5.2.6 h166bdaf_0 conda-forge yaml 0.2.5 h7f98852_2 conda-forge yapf 0.40.1 pyhd8ed1ab_0 conda-forge yarl 1.13.1 py312h66e93f0_0 conda-forge zeromq 4.3.5 ha4adb4c_5 conda-forge zipp 3.20.2 pyhd8ed1ab_0 conda-forge zlib 1.3.1 h4ab18f5_1 conda-forge zstandard 0.23.0 py312hef9b889_1 conda-forge zstd 1.5.6 ha6fb4c9_0 conda-forge ```
ccordoba12 commented 2 weeks ago

Hey @bjsilver, thanks for reporting. The error happens because the necessary packages to save passwords securely (i.e. Gnome keyring or Kwallet manager) are not installed in your system. And that causes the Python package we use to do that fail with the error you reported above.

We'll take care of the error by displaying an appropriate message saying that it's necessary to have any of those packages. But what you can do right now is to install at least one of them to be able to use our remote connection support.

bjsilver commented 2 weeks ago

Thanks very much for the reply. I have installed kwalletmanager, but I get the same error.

I should say that I often used to remote console feature in Spyder 5, using a keyfile and it worked fine.

ccordoba12 commented 2 weeks ago

Thanks very much for the reply. I have installed kwalletmanager, but I get the same error.

And did you start the daemon for it? Or log out and log in into your session again?

I should say that I often used to remote console feature in Spyder 5, using a keyfile and it worked fine.

If your keyfile has a password, then we need one of the secrets services for Linux I mentioned running to save it safely (that's a requirement now). If not, then this is a bug on our side. So let us know if you really don't require a password for your keyfile.

bjsilver commented 2 weeks ago

Hi. I'm sorry but this is pushing the limits of my understanding of Linux!

I did log in and out again, but the same error occurs. But I did not 'start the daemon' (not sure what this means sorry!)

In Spyder 5, I simply connected to the remote console by supplying the path to the keyfile, which looks like this:

{
  "shell_port": 53193,
  "iopub_port": 56723,
  "stdin_port": 50922,
  "control_port": 51921,
  "hb_port": 58634,
  "ip": "127.0.0.1",
  "key": [removed],
  "transport": "tcp",
  "signature_scheme": "hmac-sha256",
  "kernel_name": ""
}

In case it is helpful, the bash script used to start the remote kernel and create the keyfile is here

In Spyder 6, the crash occurs as soon as I press "Connect" or "Save connection", whether I enter a passphrase or not. It also crashes immediately with the same error when I use the authentication method "Password"

ccordoba12 commented 2 weeks ago

I did log in and out again, but the same error occurs. But I did not 'start the daemon' (not sure what this means sorry!)

kwallet has a daemon called kwalletd5 which needs to be running in the background. But I'm not so sure how to start it manually.

Since it seems you're not using a desktop environment (KDE or Gnome), I'd recommend you to install one of them and start a session with it. That will start the daemon automatically.

In Spyder 5, I simply connected to the remote console by supplying the path to the keyfile, which looks like this

Ok, this is a misunderstanding. What we mean by key file is an SSH key file, not a kernel connection file. So, the error you're seeing is perhaps caused because of that.

The way the new remote connections functionality work is that users give us their SSH credentials (machine address, user name, password or key file, etc) and then we set up a server on their behalf on the remote machine, start a kernel there and create a console connected to that kernel. So, all the manual process that was required in Spyder 5 is unnecessary now.

But that makes not possible to connect to a specific remote kernel, as before. However, we're planning to address that in 6.1, by allowing users to set the conda/pip environment in the remote machine that they want to use. And then we'll start a kernel for it.

Let me know if that was helpful for you.