V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
通过以下 Referral 链接购买 DigitalOcean 主机,你将可以帮助 V2EX 持续发展
DigitalOcean - SSD Cloud Servers
liangzi
V2EX  ›  VPS

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

  •  
  •   liangzi · Aug 27, 2018 · 652 views
    This topic created in 2800 days ago, the information mentioned may be changed or developed.
    • 如题

    • 之前是 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 replies    2018-08-29 21:29:42 +08:00
    msg7086
        1
    msg7086  
       Aug 29, 2018
    谁让你挪公钥的……
    liangzi
        2
    liangzi  
    OP
       Aug 29, 2018
    @msg7086 我表示不清楚 原来的公钥还在 只是 cp 到新用户目录下 chown -R 新用户 .ssh
    liangzi
        3
    liangzi  
    OP
       Aug 29, 2018
    @liangzi 表示=表述
    msg7086
        4
    msg7086  
       Aug 29, 2018
    如果原来的公钥还在,那么你直接 ssh 应该能登录到 root 账号吧?
    liangzi
        5
    liangzi  
    OP
       Aug 29, 2018
    @msg7086 是的 ssh 登录后可以用 sudo -i 登录 root 账户 然而 本地执行上面的 rsync 命令显示没有权限 根本没办法同步
    msg7086
        6
    msg7086  
       Aug 29, 2018
    不是,我是说直接登录到 root 账号。

    还是说你希望使用 sudo 来做 rsync ?
    msg7086
        7
    msg7086  
       Aug 29, 2018
    --rsync-path="sudo rsync"

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

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

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

    用户 ALL=(ALL) NOPASSWD:ALL

    另一种写法是

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

    还是那句话,先保证你能远程登录 root 账号,然后再修改这个配置文件!
    否则修改错误会导致你失去服务器控制权。
    liangzi
        14
    liangzi  
    OP
       Aug 29, 2018
    @msg7086 好的 非常感谢
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   947 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 20:57 · PVG 04:57 · LAX 13:57 · JFK 16:57
    ♥ Do have faith in what you're doing.