V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
通过以下 Referral 链接购买 DigitalOcean 主机,你将可以帮助 V2EX 持续发展
DigitalOcean - SSD Cloud Servers
liangzi
V2EX  ›  VPS

rsync 通过 SSH 备份 vps,禁止 root 登录是不是不能备份了?

  •  
  •   liangzi · 2018-08-27 16:52:20 +08:00 · 300 次点击
    这是一个创建于 2129 天前的主题,其中的信息可能已经有所发展或是发生改变。
    • 如题

    • 之前是 root 登录不过用了公钥认证

    • 刚才添加新用户 把原来的公钥挪到新用户里面设置好之后 又添加了用户的 root 权限

    • 试了一下 登录 后可以使用 sudo -i 进入 root 模式

    • rsync 不能备份了

    • 之前是这样的

    rsync -aptgovrlHAXzP -e "ssh -p 端口" --delete-excluded --exclude={"/media/*","/sys/*","/proc/*","/mnt/*","/tmp/*","/home/other/*","/var/run/*","/var/tmp/*"} 
    
    • 现在加了 sshpass 还是不行
    rsync --rsh='sshpass -p 服务端密码 ssh -l 服务端用户名' -e "ssh -p 服务端口" -aptgovrlHAXzP --delete-excluded --exclude={"/media/*","/sys/*","/proc/*","/mnt/*","/tmp/*","/home/other/*","/var/run/*","/var/tmp/*"}
    
    • 看意思就是没有权限 这东西。。。。。无解了?
    14 条回复    2018-08-29 21:29:42 +08:00
    msg7086
        1
    msg7086  
       2018-08-29 01:46:24 +08:00
    谁让你挪公钥的……
    liangzi
        2
    liangzi  
    OP
       2018-08-29 10:37:40 +08:00
    @msg7086 我表示不清楚 原来的公钥还在 只是 cp 到新用户目录下 chown -R 新用户 .ssh
    liangzi
        3
    liangzi  
    OP
       2018-08-29 10:38:00 +08:00
    @liangzi 表示=表述
    msg7086
        4
    msg7086  
       2018-08-29 15:02:23 +08:00
    如果原来的公钥还在,那么你直接 ssh 应该能登录到 root 账号吧?
    liangzi
        5
    liangzi  
    OP
       2018-08-29 17:51:54 +08:00
    @msg7086 是的 ssh 登录后可以用 sudo -i 登录 root 账户 然而 本地执行上面的 rsync 命令显示没有权限 根本没办法同步
    msg7086
        6
    msg7086  
       2018-08-29 20:21:01 +08:00
    不是,我是说直接登录到 root 账号。

    还是说你希望使用 sudo 来做 rsync ?
    msg7086
        7
    msg7086  
       2018-08-29 20:24:21 +08:00
    --rsync-path="sudo rsync"

    如果你想要的是这个的话。sudo 需要设置成无密码提权。
    liangzi
        8
    liangzi  
    OP
       2018-08-29 20:53:10 +08:00
    @msg7086 我在服务器 sshd 的配置文件里面禁止了 root 用户登录 目前只开方新添加的用户登录 希望是直接使用现在的新用户登录方式 rsync 同步备份 vps 内容到本地 然而 目测 这个 sshpass 好像识别不了密码还是其他原因?“ rsync --rsh='sshpass -p 服务端密码 ssh。。。。”这里都是明文密码 你说的 需要设置成无密码提取权具体方法有吗 谢谢
    msg7086
        9
    msg7086  
       2018-08-29 21:00:43 +08:00
    你 SSH 是密钥登录,当然不需要 sshpass 来输入密码了。

    至于 sudo 提权,需要修改 sudoers,加上 NOPASSWD 参数。你可以自己搜一下。
    还有不建议在还没有配置完成的时候就禁用 root 登录。否则配置文件改错就意味着你再也无法远程登录了。

    另外,提权 = 提升权限。
    liangzi
        10
    liangzi  
    OP
       2018-08-29 21:05:17 +08:00
    @msg7086 刚才网上搜了一下是不是把服务器里面配置成 “新用户 ALL=(ALL) NOPASSWD: /usr/bin/sudo ”就可以了?
    msg7086
        11
    msg7086  
       2018-08-29 21:09:17 +08:00
    不是。NOPASSWD 后面跟的是你要执行的命令。
    liangzi
        12
    liangzi  
    OP
       2018-08-29 21:20:02 +08:00
    @msg7086 我就是不知道这里该怎么写呢 。。。。。。
    msg7086
        13
    msg7086  
       2018-08-29 21:25:40 +08:00   ❤️ 1
    如果你禁止了 root 登录的话,这里可以写 NOPASSWD:ALL。

    用户 ALL=(ALL) NOPASSWD:ALL

    另一种写法是

    用户 ALL=(ALL) ALL
    用户 ALL=(ALL) NOPASSWD: /usr/bin/rsync

    还是那句话,先保证你能远程登录 root 账号,然后再修改这个配置文件!
    否则修改错误会导致你失去服务器控制权。
    liangzi
        14
    liangzi  
    OP
       2018-08-29 21:29:42 +08:00
    @msg7086 好的 非常感谢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5628 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 06:21 · PVG 14:21 · LAX 23:21 · JFK 02:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.