我在摆弄 rsync 时不知怎么地终止了我的 ssh 密钥登录。这是我运行的 rsync 命令。(我一看到它工作正常,就按 Control-C 键):
rsync -avz -e "ssh -i .ssh/id_rsa.pub -p XXXX" --progress ./ user@SERVERNAME/home/user/
之后,当我尝试 ssh 时收到以下错误
权限被拒绝(publickey、gssapi-keyex、gssapi-with-mic)。
服务器上的权限如下,
.ssh:
drwx------ 2 frank frank 4096 Nov 22 06:01 .
drwxrwxr-x 35 frank frank 4096 Nov 22 06:23 ..
-rw------- 1 frank frank 3893 Nov 22 05:50 authorized_keys
-rw------- 1 frank frank 1675 Oct 21 2016 id_rsa
-rw-r--r-- 1 frank frank 397 Oct 21 2016 id_rsa.pub
-rw-r--r-- 1 frank frank 420 Nov 22 06:26 known_hosts
〜/:
drwx------ 2 frank frank 4096 Nov 22 06:01 .ssh
关于我的设置的几点简要说明:
1)非标准 ssh 端口 2)无需密码登录
答案1
在这种情况下,通过查看服务器的日志通常可以更容易地诊断问题,而不是尝试从客户端解决问题。
答案2
请注意,当使用 -a 传输到根文件夹时,Rsync 可能存在保护功能或错误。
给定一个包含 cow.txt 的本地文件夹,名为 Music
rsync -a Music/ [email protected]:/usr/
将音乐文件夹中的cow.txt文件移至usr/,我仍然可以登录。
rsync -a Music/ [email protected]:/root/
将 cow.txt 文件移动到 /root/ 中,授权密钥不受影响,但随后我无法使用[电子邮件保护]。
我不确定为什么会发生这种情况,并且在服务器日志中看不到任何可以解释这种情况的内容。
但至少可以很容易地避免这个问题
远程和本地服务器均运行 rsync 版本 3.1.1 协议版本 31
在 Ubuntu 16.04 上