SSH login failed after upgrading version 0.24.3=>0.30.1

Hey @Qsi, thanks for your contribution to this topic.I’ve also changed the line you’ve mentioned. It solves one problem, but still I’m not able to use the new version. Likewise, the problem only occurs while using version 0.30.1, and vanishes after switching back to 0.24.3 (haven’t tried any other versions in-between). I think the problem might be with the way directories are created under Windows (maybe posix once again?). Unfortunately for some reason my debugger doesn’t work well with the library, so I’m unable to provide more details. Here is the output of dvc pull --verbose -r some_remote:

e[34mDebuge[39m: PRAGMA user_version;
e[34mDebuge[39m: fetched: [(3,)]
e[34mDebuge[39m: CREATE TABLE IF NOT EXISTS state (inode INTEGER PRIMARY KEY, mtime TEXT NOT NULL, size TEXT NOT NULL, md5 TEXT NOT NULL, timestamp TEXT NOT NULL)
e[34mDebuge[39m: CREATE TABLE IF NOT EXISTS state_info (count INTEGER)
e[34mDebuge[39m: CREATE TABLE IF NOT EXISTS link_state (path TEXT PRIMARY KEY, inode INTEGER NOT NULL, mtime TEXT NOT NULL)
e[34mDebuge[39m: INSERT OR IGNORE INTO state_info (count) SELECT 0 WHERE NOT EXISTS (SELECT * FROM state_info)
e[34mDebuge[39m: PRAGMA user_version = 3;
e[34mDebuge[39m: File ‘C:\Users\some_user\Documents\some_dir.dvc\cache\02\e5338dcfc6f3bac31b64657b02d811.dir’, md5 ‘02e5338dcfc6f3bac31b64657b02d811.dir’, actual ‘None’
Preparing to download data from ‘ssh://some_user@some_remote.org/home/some_user/some_dir/repo_dir’
Preparing to collect status from ssh://some_user@some_remote.org/home/some_user/some_dir/repo_dir
[######### ] 30% Collecting informatione[34mDebuge[39m: Establishing ssh connection with ‘some_remote.org’ through port ‘22’ as user ‘some_user’
c:\users\some_user\anaconda3\envs\env_name\lib\site-packages\paramiko\ecdsakey.py:164: CryptographyDeprecationWarning: Support for unsafe construction of public numbers from encoded data will be removed in a future version. Please use EllipticCurvePublicKey.from_encoded_point
self.ecdsa_curve.curve_class(), pointinfo
c:\users\some_user\anaconda3\envs\env_name\lib\site-packages\paramiko\kex_ecdh_nist.py:39: CryptographyDeprecationWarning: encode_point has been deprecated on EllipticCurvePublicNumbers and will be removed in a future version. Please use EllipticCurvePublicKey.public_bytes to obtain both compressed and uncompressed point encoding.
m.add_string(self.Q_C.public_numbers().encode_point())
c:\users\some_user\anaconda3\envs\env_name\lib\site-packages\paramiko\kex_ecdh_nist.py:96: CryptographyDeprecationWarning: Support for unsafe construction of public numbers from encoded data will be removed in a future version. Please use EllipticCurvePublicKey.from_encoded_point
self.curve, Q_S_bytes
c:\users\some_user\anaconda3\envs\env_name\lib\site-packages\paramiko\kex_ecdh_nist.py:111: CryptographyDeprecationWarning: encode_point has been deprecated on EllipticCurvePublicNumbers and will be removed in a future version. Please use EllipticCurvePublicKey.public_bytes to obtain both compressed and uncompressed point encoding.
hm.add_string(self.Q_C.public_numbers().encode_point())
[########################### ] 90% Collecting informatione[34mDebuge[39m: File ‘C:\Users\some_user\Documents\some_dir.dvc\cache\02\e5338dcfc6f3bac31b64657b02d811.dir’, md5 ‘02e5338dcfc6f3bac31b64657b02d811.dir’, actual ‘None’
[##############################] 100% Collecting information
[##############################] 100% Analysing status.
e[34mDebuge[39m: Establishing ssh connection with ‘some_remote.org’ through port ‘22’ as user ‘some_user’
e[34mDebuge[39m: Downloading ‘some_remote.org//home/some_user/some_dir/repo_dir/02/e5338dcfc6f3bac31b64657b02d811.dir’ to ‘C:\Users\some_user\Documents\some_dir.dvc\cache\02\e5338dcfc6f3bac31b64657b02d811.dir’

e[31mErrore[39m: failed to download ‘some_remote.org//home/some_user/some_dir/repo_dir/02/e5338dcfc6f3bac31b64657b02d811.dir’ to ‘C:\Users\some_user\Documents\some_dir.dvc\cache\02\e5338dcfc6f3bac31b64657b02d811.dir’ - [WinError 3] The system cannot find the path specified: ‘’
e[31m------------------------------------------------------------e[39m
Traceback (most recent call last):
File “c:\users\some_user\anaconda3\envs\env_name\lib\site-packages\dvc\remote\ssh_init_.py”, line 157, in download
from_info[“path”], to_info[“path”], progress_title=name
File “c:\users\some_user\anaconda3\envs\env_name\lib\site-packages\dvc\remote\ssh\connection.py”, line 151, in download
makedirs(posixpath.dirname(dest), exist_ok=True)
File “c:\users\some_user\anaconda3\envs\env_name\lib\os.py”, line 220, in makedirs
mkdir(name, mode)
FileNotFoundError: [WinError 3] The system cannot find the path specified: ‘’
e[31m------------------------------------------------------------e[39m

e[33mHaving any troubles?e[39m Hit us up at e[34mhttps://dvc.org/supporte[39m, we are always happy to help!
e[34mDebuge[39m: File ‘C:\Users\some_user\Documents\some_dir.dvc\cache\02\e5338dcfc6f3bac31b64657b02d811.dir’, md5 ‘02e5338dcfc6f3bac31b64657b02d811.dir’, actual ‘None’
e[34mDebuge[39m: File ‘C:\Users\some_user\Documents\some_dir.dvc\cache\03\bc18c042d53ffec3374d3ca16b7623.dir’, md5 ‘03bc18c042d53ffec3374d3ca16b7623.dir’, actual ‘None’

Preparing to download data from ‘ssh://some_user@some_remote.org/home/some_user/some_dir/repo_dir’

Preparing to collect status from ssh://some_user@some_remote.org/home/some_user/some_dir/repo_dir
[######### ] 30% Collecting informatione[34mDebuge[39m: Establishing ssh connection with ‘some_remote.org’ through port ‘22’ as user ‘some_user’
[########################### ] 90% Collecting informatione[34mDebuge[39m: File ‘C:\Users\some_user\Documents\some_dir.dvc\cache\03\bc18c042d53ffec3374d3ca16b7623.dir’, md5 ‘03bc18c042d53ffec3374d3ca16b7623.dir’, actual ‘None’
[##############################] 100% Collecting information
[##############################] 100% Analysing status.
e[34mDebuge[39m: Establishing ssh connection with ‘some_remote.org’ through port ‘22’ as user ‘some_user’
e[34mDebuge[39m: Downloading ‘some_remote.org//home/some_user/some_dir/repo_dir/03/bc18c042d53ffec3374d3ca16b7623.dir’ to ‘C:\Users\some_user\Documents\some_dir.dvc\cache\03\bc18c042d53ffec3374d3ca16b7623.dir’

e[31mErrore[39m: failed to download ‘some_remote.org//home/some_user/some_dir/repo_dir/03/bc18c042d53ffec3374d3ca16b7623.dir’ to ‘C:\Users\some_user\Documents\some_dir.dvc\cache\03\bc18c042d53ffec3374d3ca16b7623.dir’ - [WinError 3] The system cannot find the path specified: ‘’
e[31m------------------------------------------------------------e[39m
Traceback (most recent call last):
File “c:\users\some_user\anaconda3\envs\env_name\lib\site-packages\dvc\remote\ssh_init_.py”, line 157, in download
from_info[“path”], to_info[“path”], progress_title=name
File “c:\users\some_user\anaconda3\envs\env_name\lib\site-packages\dvc\remote\ssh\connection.py”, line 151, in download
makedirs(posixpath.dirname(dest), exist_ok=True)
File “c:\users\some_user\anaconda3\envs\env_name\lib\os.py”, line 220, in makedirs
mkdir(name, mode)
FileNotFoundError: [WinError 3] The system cannot find the path specified: ‘’
e[31m------------------------------------------------------------e[39m

e[33mHaving any troubles?e[39m Hit us up at e[34mhttps://dvc.org/supporte[39m, we are always happy to help!
e[34mDebuge[39m: File ‘C:\Users\some_user\Documents\some_dir.dvc\cache\03\bc18c042d53ffec3374d3ca16b7623.dir’, md5 ‘03bc18c042d53ffec3374d3ca16b7623.dir’, actual ‘None’
e[34mDebuge[39m: File ‘C:\Users\some_user\Documents\some_dir.dvc\cache\2d\699d3476e1071a9ad206bd044f17a9.dir’, md5 ‘2d699d3476e1071a9ad206bd044f17a9.dir’, actual ‘None’

Preparing to download data from ‘ssh://some_user@some_remote.org/home/some_user/some_dir/repo_dir’

Preparing to collect status from ssh://some_user@some_remote.org/home/some_user/some_dir/repo_dir
[######### ] 30% Collecting informatione[34mDebuge[39m: Establishing ssh connection with ‘some_remote.org’ through port ‘22’ as user ‘some_user’
[########################### ] 90% Collecting informatione[34mDebuge[39m: File ‘C:\Users\some_user\Documents\some_dir.dvc\cache\2d\699d3476e1071a9ad206bd044f17a9.dir’, md5 ‘2d699d3476e1071a9ad206bd044f17a9.dir’, actual ‘None’
[##############################] 100% Collecting information
[##############################] 100% Analysing status.
e[34mDebuge[39m: Establishing ssh connection with ‘some_remote.org’ through port ‘22’ as user ‘some_user’
e[34mDebuge[39m: Downloading ‘some_remote.org//home/some_user/some_dir/repo_dir/2d/699d3476e1071a9ad206bd044f17a9.dir’ to ‘C:\Users\some_user\Documents\some_dir.dvc\cache\2d\699d3476e1071a9ad206bd044f17a9.dir’

e[31mErrore[39m: failed to download ‘some_remote.org//home/some_user/some_dir/repo_dir/2d/699d3476e1071a9ad206bd044f17a9.dir’ to ‘C:\Users\some_user\Documents\some_dir.dvc\cache\2d\699d3476e1071a9ad206bd044f17a9.dir’ - [WinError 3] The system cannot find the path specified: ‘’
e[31m------------------------------------------------------------e[39m
Traceback (most recent call last):
File “c:\users\some_user\anaconda3\envs\env_name\lib\site-packages\dvc\remote\ssh_init_.py”, line 157, in download
from_info[“path”], to_info[“path”], progress_title=name
File “c:\users\some_user\anaconda3\envs\env_name\lib\site-packages\dvc\remote\ssh\connection.py”, line 151, in download
makedirs(posixpath.dirname(dest), exist_ok=True)
File “c:\users\some_user\anaconda3\envs\env_name\lib\os.py”, line 220, in makedirs
mkdir(name, mode)
FileNotFoundError: [WinError 3] The system cannot find the path specified: ‘’
e[31m------------------------------------------------------------e[39m

e[33mHaving any troubles?e[39m Hit us up at e[34mhttps://dvc.org/supporte[39m, we are always happy to help!
e[34mDebuge[39m: File ‘C:\Users\some_user\Documents\some_dir.dvc\cache\2d\699d3476e1071a9ad206bd044f17a9.dir’, md5 ‘2d699d3476e1071a9ad206bd044f17a9.dir’, actual ‘None’
e[34mDebuge[39m: File ‘C:\Users\some_user\Documents\some_dir.dvc\cache\ba\123eb852363aa7775e3c3259257ba5.dir’, md5 ‘ba123eb852363aa7775e3c3259257ba5.dir’, actual ‘None’

Preparing to download data from ‘ssh://some_user@some_remote.org/home/some_user/some_dir/repo_dir’

Preparing to collect status from ssh://some_user@some_remote.org/home/some_user/some_dir/repo_dir
[######### ] 30% Collecting informatione[34mDebuge[39m: Establishing ssh connection with ‘some_remote.org’ through port ‘22’ as user ‘some_user’