在我的项目中,我必须远程安装一些软件包。如果我必须登录debian,我会说:
$ ssh root@remotehostname
root@remotehostname's password:
它成功登录。
我已直接使用
登录 ubuntu $ root@remotehostname
root@remotehostname's password:
是
中的抛出错误消息Permission denied, please try again.
如何解决这个问题?
答案 0 :(得分:16)
检查/etc/ssh/sshd_config
下方的PermitRootLogin yes
是否# Authentication:
。如果不是yes
,则不允许以root身份登录。
您可以将其更改为yes
。
然后,重新启动ssh服务以应用更改:
sudo service sshd restart
答案 1 :(得分:14)
默认情况下,Root帐户密码在Ubuntu中被锁定。
它还说:
请记住,大量的Ubuntu用户是新手 Linux。有一个与任何操作系统相关的学习曲线和许多新的操作系统 用户尝试通过启用root帐户登录来获取快捷方式 以root身份,并更改系统文件的所有权。
详细讨论了为什么这样做。
启用root帐户:
sudo -i
要启用Root帐户(即设置密码),请使用:
sudo passwd root
使用风险自负!
以root身份登录X可能会造成非常严重的问题。如果您相信 您需要root帐户才能执行某项操作,请咨询 首先是官方支持渠道,以确保没有 更好的选择。
答案 2 :(得分:11)
不要启用root帐户。不要为root帐户设置密码。
更好的方法是允许使用公钥身份验证进行root登录,而不是使用密码。 The reasoning is explained in the Debian mailing list archives.
打开/etc/ssh/sshd_config
并检查PermitRootLogin
是否设置为yes
。如果没有,则将其设置为是,然后使用ssh
sudo service ssh restart
如果根目录不存在,请在根目录中创建.ssh
目录,并确保它具有严格的权限:
sudo -i mkdir -p .ssh
sudo -i chmod 700 .ssh
在您要登录的系统中创建公钥/私钥对。
将您的公钥复制到常规用户帐户。
将您的公钥附加到root的.ssh/authorized_keys
,并确保该文件具有严格的权限:
cat id_rsa.pub | sudo -i tee -a .ssh/authorized_keys
sudo -i chmod 600 .ssh/authorized_keys
使用此设置,您应该能够使用私钥以root身份登录。
如果您之前已启用root
帐户,请务必立即停用该帐户:
sudo passwd -l root
答案 3 :(得分:4)
您可以为root设置密码,但不建议这样做,可能会产生安全风险。但是,如果目标系统上的用户帐户具有sudo凭据,则可以以用户身份登录:
ssh user@remotehostname
user@remotehostname's password:
然后使用sudo执行您想要的操作或以建议的方式获取root shell:
user@remotehostname$ sudo su
Password:
root@remotehostname#
然后做你的家务。而不是'sudo su'你也可以使用'sudo -i',它等同于'sudo -s',它可以保持当前的环境。
答案 4 :(得分:3)
编辑你的/ etc / sshd_config:
sudo /etc/sshd_config
在身份验证部分中搜索 PermitRootLogin 的行,并取消注释 PermitRootLogin 或设置 PermitRootLogin是。或者只是将此行添加到文件末尾:
PermitRootLogin yes
接下来你将重启ssh守护进程
/etc/init.d/ssh restart
或
service ssh restart
取决于您的Linux发行版 现在,您将使用root帐户通过ssh登录 警告:出于安全原因,不建议这样做。你可以做的是通过ssh和你的用户会话中的任何其他accound登录:
sudo command
或简单地说:
sudo su
在您的root帐户下继续会话
答案 5 :(得分:2)
ssh -l user localhost "sudo whoami"
返回:
root
只要:
远程主机允许用户连接以便能够sudo而无需再输入密码。
已运行ssh-copy-id或将正确的密钥复制到远程主机,以便用户可以通过ssh无需密码再次连接
所有不同的是在执行命令之前添加了sudo这个词
如果密钥等存在安全问题,那么您可以查看一种名为expect的语言 - 使用expect脚本,您将能够ssh / telnet到远程主机,并相应地发送密码等
答案 6 :(得分:2)
我认为我唯一厌倦以root身份登录的时候是我第一次使用AWS EC2而我试图以root身份进行操作,因为我知道它存在。用户名ec2-user。
答案 7 :(得分:1)
vi /etc/ssh/sshd_config
#PermitRootLogin without-password
:PermitRootLogin yes
下面插入service ssh restart
答案 8 :(得分:0)
默认情况下,Root帐户密码在基于Debian的系统中被锁定,如Ubuntu:
切换到root
帐户用户:
sudo -i;
现在设置root帐户的密码:
sudo passwd;
仅为root添加密码是不够的。
需要启用传入的ssh连接,如下所示:
修改/etc/ssh/sshd_config
,找出以下行:
PermitRootLogin without-password
只需将without-password
替换为yes
,如下一行所示:
PermitRootLogin yes
然后重启SSH:
sudo service ssh restart;
最后重启系统:
sudo reboot;
完成!!!
答案 9 :(得分:0)
编辑
/etc/ssh/sshd_config
文件并将“PermitRootLogin forced-commands-only”更改为“PermitRootLogin without-password”。
使用“service sshd restart
”重新启动sshd服务器。
编辑/root/.ssh/authorized_keys
文件。该文件应该只有一行。它以“echo”或“command ... sleep 10;”开头,然后你可以看到“ssh-rsa [big long key]”。从行的开头删除文本,直到它显示“ssh-rsa”。
使用root与您的密钥对对您的计算机进行SSH操作