我有一台服务器,我使用我的密钥文件(例如)通过 SSH 连接该服务器id_rsa.pub
。我在客户端和服务器端使用 Debian。
我按照教程禁用根身份验证和密码使用以提高安全性(通过/etc/ssh/sshd/sshd_config
在服务器上配置文件)。
到目前为止,我可以轻松地使用rsync
它来将文件从我的计算机同步到服务器。
几天之前, 我使用了 cron 作业工作,为此我必须在服务器端重置我的根密码。
从那时起,我就无法使用rsync
了SSH
;我收到以下消息:
[email protected]: Permission denied (publickey).
rsync: connection unexpectedly closed (0 bytes received so far)[sender]
rsync error: unexplained error (code 255) at io.c(235)[sender=3.1.3]
有一些类似的主题,但我认为我的情况有些不同,因为我认为问题是由于在服务器上重置密码造成的。我也在 Ask Ubuntu 网站上问过一个问题,但我想这里的人可能在权限问题方面更专业。
我不知道如何修复这个问题(我懂一点终端命令,但我不是计算机专家)。你能帮帮我吗?
/etc/ssh/sshd_config
仅供您参考,请找到调整不使用密码的教程:
#Uncomment or add the following line.
#This allows the server to give its DSA footprint in case of an ssh connection.
HostKey /etc/ssh/ssh/ssh_host_dsa_key
#Then set the next parameter to 20s (for example).
#This is the time during which a connection without being logged in will be opened.
#If we had kept the good old password technique, leave 2 or 3 minutes to type it, it's not too much.
#But since we're using the key now, we'll be logged in immediately. #So we can really reduce the thing and put it down to 20 seconds for example.
LoginGraceTime 20s
#this is the maximum number of attempts before being thrown by the server....
#Since with the key, no possible error, you can put it to 1 possible test.
MaxAuthTries 1
#Then, we will tell the SSH server where the keys are and tell it that we will use them as an authentication method
PubkeyAuthentication yes
AuthorizedKeysFile.ssh/authorized_keys
#And of course, we'll disable all other authentication methods
RSAAuthentication no.
UsePAM no
KerberosAuthentication no
GSSAPIA Authentication no.
PasswordAuthentication no
#Then, we will tell that we only allow users of the sshusers group (for more security)
AllowGroups sshusers
#The MaxStartups setting indicates the number of un-authenticated ssh connections you can launch at the same time.
#2 is more than enough, knowing that with the keys, it's instantaneous.
MaxStartups 2
答案1
我刚刚找到了解决方案...我的命令是:
sudo rsync -avz -e "ssh -p <port>" <source> <destination>
但我必须简单地(不用)来做sudo
:
rsync -avz -e "ssh -p <port>" <source> <destination>
我不确定原因,但我认为root
我的台式计算机的用户不允许通过 SSH 访问我的服务器,因为密钥仅供我的classic
桌面用户使用(因此没有 sudo)。
有人可以确认吗?谢谢。