pro*_*eur 4 linux ssh rsync cron permissions
我有一台服务器,我通过 SSH 连接到我的密钥文件,例如id_rsa.pub. 我在客户端和服务器端使用 Debian。
我按照教程禁用 root 身份验证和密码使用以提高安全性(通过/etc/ssh/sshd/sshd_config在服务器上配置文件)。
到目前为止,我可以轻松rsync地将我的文件从我的计算机同步到服务器。
几天前, 我使用了一个 cron 作业,为此我不得不在服务器端重置我的 root 密码。
从那以后,我就无法使用rsyncin SSH; 我收到以下消息:
nextcloud@192.168.0.20: 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]
Run Code Online (Sandbox Code Playgroud)
有一些类似的主题,但我认为我的情况有点不同,因为我认为问题是由于在服务器上重置了我的密码。我也在 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
Run Code Online (Sandbox Code Playgroud)
我刚刚找到了解决方案......我的命令是:
sudo rsync -avz -e "ssh -p <port>" <source> <destination>
Run Code Online (Sandbox Code Playgroud)
但我不得不简单地做(没有sudo):
rsync -avz -e "ssh -p <port>" <source> <destination>
Run Code Online (Sandbox Code Playgroud)
我不确定原因,但我认为root我的台式计算机的用户不允许通过 SSH 访问我的服务器,因为密钥仅适用于我的classic台式机用户(因此没有 sudo)。
有人可以确认吗?谢谢你。