在ubuntu中以root身份远程登录

Ree*_*nda 12 linux ssh ubuntu

在我的项目中,我必须远程安装一些软件包.如果我必须登录debian,我会说:

$ ssh root@remotehostname
root@remotehostname's password: 
Run Code Online (Sandbox Code Playgroud)

它成功登录.

我已经在ubuntu中直接登录了

 $ root@remotehostname
 root@remotehostname's password:
Run Code Online (Sandbox Code Playgroud)

它是抛出错误信息

Permission denied, please try again.
Run Code Online (Sandbox Code Playgroud)

如何解决这个问题呢?

vvy*_*vvy 16

检查下面/etc/ssh/sshd_config是否配置.如果不是,则不允许以root用户身份登录.PermitRootLogin yes# Authentication:yes

你可以改成它yes.

然后,重新启动ssh服务以应用更改: sudo service sshd restart


dev*_*ull 14

Ubuntu文档说:

默认情况下,Root帐户密码在Ubuntu中被锁定.

它还说:

请记住,大量的Ubuntu用户不熟悉Linux.有一个与任何操作系统相关的学习曲线,许多新用户尝试通过启用root帐户,以root用户身份登录以及更改系统文件的所有权来获取快捷方式.

它详细讨论了为什么这样做.


启用root帐户:

sudo -i
Run Code Online (Sandbox Code Playgroud)

要启用Root帐户(即设置密码),请使用:

sudo passwd root
Run Code Online (Sandbox Code Playgroud)

使用风险自负!

以root身份登录X可能会导致非常严重的问题.如果您认为需要root帐户来执行某项操作,请先咨询官方支持渠道,以确保没有更好的选择.


Sto*_*ica 11

不要启用root帐户.不要为root帐户设置密码.

更好的方法是允许使用公钥身份验证进行root登录,而不是使用密码.推理在Debian邮件列表档案中进行了解释.

  1. 打开/etc/ssh/sshd_config并检查是否PermitRootLogin设置为yes.如果没有,那么它设置为yes并重新启动sshsudo service ssh restart

  2. .ssh如果目录不存在,请在root的主目录中创建目录,并确保它具有严格的权限:

    sudo -i mkdir -p .ssh
    sudo -i chmod 700 .ssh
    
    Run Code Online (Sandbox Code Playgroud)
  3. 在要从中登录的系统中创建公钥/私钥对.

  4. 将您的公钥复制到您的常规用户帐户.

  5. 将您的公钥附加到.ssh/authorized_keysroot,并确保该文件具有严格的权限:

    cat id_rsa.pub | sudo -i tee -a .ssh/authorized_keys
    sudo -i chmod 600 .ssh/authorized_keys
    
    Run Code Online (Sandbox Code Playgroud)

使用此设置,您应该能够使用私钥以root身份登录.

如果您之前已启用该root帐户,请务必立即停用该帐户:

sudo passwd -l root
Run Code Online (Sandbox Code Playgroud)