SSH 无法创建目录 /home/USERNAME/.ssh

cod*_*mok 8 ssh script cygwin python rdiff-backup

我的脚本正在执行以下命令:

command = os.system('rdiff-backup --exclude "**.dropbox**" --exclude "**.ini**" --remote-schema "ssh -o UserKnownHostsFile=/cygdrive/c/Users/Adam/.ssh/known_hosts -i /cygdrive/c/Users/Adam/.ssh/id_rsa %s -p1019 rdiff-backup --server" C:/Users/Adam/Dropbox pi@192.168.0.5::/mnt/disk1/Adam/Dropbox')
Run Code Online (Sandbox Code Playgroud)

如您所见,我已经告诉它在哪里查找 known_hosts 文件夹并告诉它密钥在哪里 - 如果没有这两个问题,我会不断被问到将我的服务器添加到 known_hosts 每次执行并被要求输入密码, 每次执行。很遗憾 SSH 无法独立定位这些,我的假设是它总是在同一个目录下工作,C:\Users\Adam\.ssh

Anywho,我现在得到的唯一错误消息是Could not create directory '/home/Adam/.ssh'- 我已经确保我当前用户的 HOME 变量是正确的,但它似乎仍然找不到 .ssh 文件夹。脚本执行没有问题,只是这个烦人的错误信息。我正在使用 Cygwin 的 SSH 包,我不确定这有多重要?另外,我.ssh使用 Rsync 的 ssh.exe 文件生成了目录,而不是 Cygwin 的。这很重要吗?

cod*_*mok 11

我在这篇博文中找到了我的解决方案的答案。

“首先找到名为该文件passwdC:\path\to\cygwin\etc目录中,并用写字板打开它。其次,替换文本/home/YOUR_NAME/cygdrive/c/Documents and Settings/YOUR_NAME最后保存文件。”


更新

有些人报告说,将 %USERPROFILE% 作为值添加到名为“HOME”的系统变量中是可行的。

  • 我遇到了同样的问题,但我找不到 `passwd` 文件 (5认同)
  • 我想你可以生成一个。“mkpasswd -l >/etc/passwd”。在 Cygwin bash 终端而不是 cmd 中执行。 (3认同)
  • 使用 mkpasswd 生成 passwd 文件,将提到的文本替换为新的,问题仍然存在:找不到路径 /home/USER/.ssh (2认同)