我想对我的案子有一些build议:
我有一个公共IP地址的服务器。 我有一个root用户的密码。 我已经closures(在sshd)PermitRootlogin =没有
问题/提示/build议:
如何删除root用户的密码并用ssh访问这个服务器而不需要任何密码? 我是否需要使用sudo才能获得root权限?
谢谢
我会一一回答你的问题;-)。
你喜欢做任何事情,你需要另一个用户,拥有sudo的所有权利! 在Ubuntu或Debian上,用户必须在组pipe理员中 。 用这个用户通过sshlogin并尝试用sudo -i获得root权限。 我工作,你可以继续用passwd -l root去激活rootlogin,你就完成了。
可以通过ssh-keypair访问服务器。 这很容易,在大多数情况下比普通密码更安全。 首先,您必须在您的客户端PC上生成这样一个密钥对。 如果你使用的是Linux / Unix,你可以用ssh-keygen -t rsa 。 build议使用密码locking此密钥对,只有您可以使用它们! 像Gnome,Unity和Kde这样的大多数桌面环境都可以在解锁钥匙圈/钱包后自动解锁这个ssh-key。
现在,您需要将您的公钥(默认〜/ .ssh / id_rsa.pub )部署到您的服务器上的*〜/ .ssh / authorized_keys *文件中。 您可以执行本手册或使用命令ssh-copy-id user@server 。
如果您的密钥login成功,您可以通过禁用ssh的密码login来实现更高的安全性。 要归档,您需要将/ etc / ssh / sshd_config PasswordAuthentication yes的以下行更改为PasswordAuthentication no然后重新启动ssh-server。
不,但build议! 但这取决于你使用你的服务器的方式。 如果你是唯一一个有权访问你的服务器的用户,你select的并不是什么重要的东西,但是如果有多个用户,sudo会更有意义,因为你不需要共享你的root密码获得根或特权访问。 如果你决定,那个用户不应该有root权限,你只需要删除sudo权限,而不是改变root密码,并与每个人重新分享。 但是并不是所有事情都可以用sudo来完成。
如果您想以root身份直接login而不需要密码,则不需要删除root密码。 您可以在sshd config中设置PermitRootLogin without-password ,重新启动sshd,为客户端生成(通过ssh-keygen或puttygen.exe),将.ssh/id*.pub (或从puttygen导出)复制到〜root ~root/.ssh/authorized_keys在服务器上,并以root用户身份访问您的服务器。 您可以生成客户端密钥,无需密码(不太安全)或使用密码,但使用ssh-agent / pageant.exe,它记住你的密码进行后续login。
调整sshdconfiguration是敏感的; 你应该了解很多细微之处。 但是,基本上。 。 。
拿你的公钥,你可能需要在系统上生成一个密钥对,并将其安装在服务器的根目录的.ssh目录中。 设置“PermitRootLogin yes”,然后validation当你ssh到服务器,它让你在没有提示你的密码。 然后将“PasswordAuthentication”设置更改为“no”。
注意:PasswordAuthentication = no会影响到系统的所有连接,所以我的答案影响到每个人。 您可以通过用户来控制用户, 例如这个问题。