Подключение по SFTP к серверу развертывания в PyCharm не работает - PullRequest
0 голосов
/ 02 марта 2020

Я настроил соединение SFTP с логином и паролем в PyCharm 2019.3.3 (Build #PY-193.6494.30) на Mac OS 10.15.3. Когда я пытаюсь «Проверить соединение SFTP», я не получаю никакой ошибки, кроме «Соединения по SFTP» l oop, которое никогда не прерывается. Каждый раз, когда я переустанавливаю PyCharm, он работает 2-3 раза, но после этого соединения больше не устанавливаются, и я получаю соединительные петли, как описано. Когда я переустановил PyCharm, я обязательно удалил все связанные файлы из ~ / Library. Соединение устанавливается через VPN-туннель. Я прекрасно могу sh на тот же адрес развертывания, только PyCharm не может подключиться.

enter image description here

Мне удалось получить следующее из журналов:

2020-03-02 15:22:42,945 [  17190]  DEBUG - t.connections.RemoteConnection - Opening connection to sftp://10.5.166.81:22/ in @6aab2a3e 
2020-03-02 15:22:42,970 [  17215]  DEBUG - ntellij.ssh.impl.SshConnection - Failed to create SSH channel using existing SSH sessions, creating new SSH session 
2020-03-02 15:22:42,970 [  17215]  DEBUG - ntellij.ssh.impl.SshConnection - Establishing new SSH session to user@10.5.166.81:22 
2020-03-02 15:22:43,186 [  17431]   INFO - port.random.BouncyCastleRandom - Generating random seed from SecureRandom. 
2020-03-02 15:22:43,603 [  17848]   INFO - z.sshj.transport.TransportImpl - Client identity string: SSH-2.0-SSHJ_0.27.0 
2020-03-02 15:22:43,625 [  17870]   INFO - z.sshj.transport.TransportImpl - Server identity string: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.3 
2020-03-02 15:22:43,821 [  18066]   INFO - om.intellij.ssh.impl.sshj.sshj - Authentication log: SSHJ connection to user@10.5.166.81:22
* With preferred authentications: publickey,keyboard-interactive,password
* With signature factories: ssh-rsa, ssh-dss, ecdsa-sha2-nistp256, ecdsa-sha2-nistp384, ecdsa-sha2-nistp521, ssh-ed25519
* With keep alive interval 300 seconds
* With keep alive count max 1000
* With OpenSshLikeHostKeyVerifier(knownHostsFile=[/Users/user/.ssh/known_hosts], strictHostKeyChecking=ASK, hashKnownHosts=false)
* With predefined password
* With authentications: password by net.schmizz.sshj.userauth.method.AuthPassword, keyboard-interactive by net.schmizz.sshj.userauth.method.AuthKeyboardInteractive
* With socketFactory com.intellij.ssh.sockets.MySftpJavaSocketFactory@630ddfb0
* With connect timeout 10000
* Connected
  => none by net.schmizz.sshj.userauth.method.AuthNone@24b009e5 (failure, new allowed auth methods: publickey, password)
  => password by net.schmizz.sshj.userauth.method.AuthPassword@108e1414 (success) 
2020-03-02 15:22:43,825 [  18070]  DEBUG - ntellij.ssh.impl.SshConnection - SSH session @30c953a1 established to user@10.5.166.81:22 
2020-03-02 15:22:43,825 [  18070]  DEBUG - ellij.ssh.SshConnectionService - Creating sftp channel within SshjSshConnection(<crc32=zov9y>@<crc32=1djyopl>)@30c953a1 
2020-03-02 15:22:44,628 [  18873]   INFO - .channel.direct.SessionChannel - Will request `sftp` subsystem 

Обычно я вхожу в систему через свой личный ключ s sh, но также работает логин с паролем + пароль:

$ ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no 10.5.166.81
The authenticity of host '10.5.166.81 (10.5.166.81)' can't be established.
ECDSA key fingerprint is SHA256:ELdUhvqI6us+QR/CJRwb0u4a+zUcvWLUdZdWeYmhj2s.
Are you sure you want to continue connecting (yes/no)? yes
user@10.5.166.81's password:
Welcome to Ubuntu 18.04.2 LTS (GNU/Linux 4.15.0-46-generic x86_64)

Я заметил, что для новых серверов развертывания PyCharm иногда не работает попросите меня принять отпечаток ключа ECDSA. Возможно, это может привести к тому, что PyCharm будет бесконечно пытаться выполнить «Соединение по SFTP», ожидая, пока пользователь не примет подсказку с отпечатком ключа, которая никогда не появляется.

Я не использую алгоритмы KeX, поэтому предлагаемый обходной путь здесь нельзя использовать.

1 Ответ

0 голосов
/ 03 марта 2020

Мне удалось решить проблему. В журналах указывалось, что с sftp что-то не так. Отладив вывод sftp -v user@10.5.166.81, я увидел, что аутентификация через S SH работала нормально, но после этого sftp остановился. Оказывается, у меня была команда zsh в моем ~/.bashrc, которая прекрасно работала для s sh сессий, но не для sftp. Удаление этой строки из bashr c и использование chsh <user> -s /bin/zsh решило проблему и теперь успешно включает Connecting by SFTP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...