SSH 身份验证的正确选项?

SSH 身份验证的正确选项?

我正在使用 rdiff-backup 将增量备份发送到我的本地服务器。我的主机是 Windows,我的远程是 Linux 机器。我试图让我的脚本执行以下操作:

command = os.system('rdiff-backup --exclude "**.dropbox**" --exclude "**.ini**" --remote-schema "ssh -i C:/Users/Adam/.ssh/id_rsa %s -p1019 rdiff-backup --server" C:/Users/Adam/Dropbox [email protected]::/mnt/disk1/Adam/Dropbox')

然而,在执行过程中我得到了以下提升:

Could not create directory '/home/Adam/.ssh'. The authentictity of host '[192.168.0.5]:1019 ([192.168.0.5]:1019)' can't be established. RSA key fingerprint is 2e:7c:f0:0c:4b:8d:fa:e1:21:a1:32:81:a0:e1:11:11. Are you sure you want to continue connecting (yes/no)?

我以为选项-i C:/Users/Adam/.ssh/id_rsa会覆盖这个?每次执行脚本时都请求这个是不切实际的。我如何绕过这个问题,同时保持身份验证和安全性(因为我很快就会为我的笔记本电脑编写一个类似的脚本,但通过公共和远程机器发送增量备份)?

更新:

请阅读 grawity 的回答以及评论,以帮助您了解我哪里出错了以及如何修复它 - 当然是在 grawity 的帮助下。为了解决 Cygwin 的问题,Cannot create directory /home/USERNAME/.ssh请参阅这篇博文

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

答案1

您看到的是...

The authentictity of host '[192.168.0.5]:1019 ([192.168.0.5]:1019)' can't be established.

...与您使用的用户身份验证密钥没有任何关系。该消息正在谈论主持人身份验证——确保服务器是正确的。

通常情况下,提示是一次性的,因为服务器的公钥存储在 中~/.ssh/known_hosts。但是,在您的情况下,ssh无法创建此文件,因为它无法创建父目录:

Could not create directory '/home/Adam/.ssh'.

失败的原因很可能是它/home/Adam本身不存在,或者/home/Adam/.ssh不是目录。请尝试使用 手动创建它mkdir

(另外:阅读错误信息也有帮助。)

答案2

您需要检查您的 ~/.ssh/known_hosts 中是否有 192.168.0.5 的条目,它可能已经发生了变化。

这是 ssh 客户端安全机制的一部分。请参阅 ssh 文档和手册页以了解更多信息。通过在 superuser.com 等网站上发帖提问是了解安全性的捷径。

但是,如果您的问题是如何覆盖并故意忽略它,请将此参数添加到您的命令行:

ssh -o StrictHostKeyChecking=no <...>

(并且请不要因此而责怪我。)

玩得开心。

答案3

我遇到了同样的问题。MINGW 的 SSH 实际上是路径 /home//.ssh 的 home

把你的 SSH 配置放在那里,它就会工作

相关内容