rsync 和 ssh-key 的问题

rsync 和 ssh-key 的问题

我创建了一个 ssh-key 来登录我的 CentOS VPS,将默认端口改为 2020,并禁用密码连接,这样我只能使用密钥登录此 VPS(需要密码才能解锁)。我的机器运行的是 Ubuntu 16.04。

我登录了服务器,像第一次登录一样,它询问我的 ssh-key 密码。我提示一切正常。做了一些测试,然后我第一次尝试使用它们rsync将文件传输到 VPS 的 Web 服务器。我打开了一个新的终端窗口并发出了命令:

rsync -azP -e "ssh -p 2020" /var/www/html/myfolder myuser@myhost:/var/www/html

第一次输出:

The authenticity of host '[myhost]:2020 ([myhost]:2020)' can't be established.
RSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxx

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added '[myhost]:2020' (RSA) to the list of known hosts.
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(226) [sender=3.1.1]

我觉得很奇怪。为什么它必须再次添加我的密钥?为什么rsync无法连接?当我现在尝试时,我收到了相同的连接被拒绝消息(不再是密钥添加消息)。有人能解释一下吗?

更新:

我用来登录服务器的命令:

ssh myuser@myhost -p 2020

如果是第一次连接,它会要求输入 ssh-key 密码。

VPS /etc/ssh/sshd_config(无注释):

Port 2020
Protocol 2
SyslogFacility AUTHPRIV
PermitRootLogin yes
PasswordAuthentication no
AllowUsers myuser root
ChallengeResponseAuthentication no
GSSAPIAuthentication yes
GSSAPICleanupCredentials yes
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS
X11Forwarding no
Subsystem       sftp    /usr/libexec/openssh/sftp-server

如果我以同一个用户身份运行两个用户:

我不明白这个问题...=\

钥匙在哪?

好吧,我是 ssh 新手,我刚刚使用命令生成了密钥ssh-keygen,所以我很确定密钥在默认文件夹中。而且它们正在工作,因为我可以连接到 VPS。

-VVV 模式:

sudo rsync -aPvvv -e "ssh -p 2020" /var/www/html/curriculum/ myuser@myhost:/var/www/html

opening connection using: ssh -p 2020 -l myuser myhost rsync --server -vvvlogDtpre.iLsfx --partial . /var/www/html  (12 args)
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(226) [sender=3.1.1]
[sender] _exit_cleanup(code=12, file=io.c, line=226): about to call exit(255)

相关内容