如何获得root帐户以生成可接受的ssh密钥?


4

在ubuntu机器上,我执行以下操作:

~$ sudo su -
[sudo] password for jamie:
root@mydomain:~# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
12:34:56:78:9a:bc:de:f0:12:34:56:78:9a:bc:de:f0 root@mydomain.ca
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|                 |
|                 |
|                 |
|                 |
|                 |
|                 |
|                 |
|                 |
+-----------------+
root@mydomain:~# cat /root/.ssh/id_rsa.pub | ssh -p 443 jamie@remote.server.box 'cat > ~/.ssh/authorized_keys'
jamie@remote.server.box's password:
root@mydomain:~# ssh jamie@remote.server.box
jamie@remote.server.box's password:

要求我输入密码。

但是,使用普通帐户可以进行以下操作:

$ cd ; ssh-keygen -t rsa ; cat ~/.ssh/id_rsa.pub | ssh jamie@remote.server.box 'cat >> ~/.ssh/authorized_keys'
$ ssh jamie@remote.server.box
Last login: Thu Oct 24 14:48:41 2013 from 173.45.232.105
[jamie@remote.server.box ~]$ 

这使我相信这不是authorized_keysvs authorized_keys2或权限的问题。

为什么“ root”帐户无法访问远程“ jamie”帐户?

如果相关的话,远程机器是CentOS。


在这两种情况下,您都将密钥添加到authorized_keys同一用户的。没有理由让您以root用户身份登录。除此之外,root登录可能只是被禁用(应该如此)。只要允许您升高,只需以“ jamie”身份sudo登录并在登录后使用即可。
Der Hochstapler 2013年

@OliverSalzburg我不清楚。我希望Ubuntu机器上的root帐户有权访问远程的“ jamie”帐户,而不是“ root”帐户。
杰米

1
我敢打赌,这与您的使用方式有关su。你$HOME之后的情况如何su?再试一次,su -也许会更好。
凯文·潘科

1
我不确定这是否重要(可能不重要),但我认为sudo su ; cd您想要的不是。该cd不会在高架外壳进行处理,但您注销它之后。
Der Hochstapler,2013年

您可以验证以root身份生成的公钥是否已正确添加到authorized_keys远程端吗?您可能还想看看ssh-copy-id
Der Hochstapler 2013年

Answers:


2

在这里找到答案:https : //askubuntu.com/a/90465/14447

可能应该将此问题标记为相同的重复项。


2
不幸的是,堆栈交换当前不支持站点之间的链接问题。
Jan Hudec

尽管从理论上讲这可以回答问题,但最好在此处包括答案的基本部分,并提供链接以供参考。
2013年

是的,重复项必须位于同一站点中。该问题将需要首先进行迁移,然后可以将其标记为重复。
凯文·潘科

1

尝试在详细模式下运行ssh。我发现这通常为正在发生的事情提供线索。

在目标计算机上,一直检查目录到.ssh的安全性。如果任何目录是可写的全局目录或组目录,这可能会导致ssh拒绝访问您的授权密钥文件。我相信.ssh目录必须不能被组或世界访问。

尝试在遥控器上创建密钥文件,然后将公共密钥添加到authorized_keys文件中。找ssh localhost第一份工作,然后尝试远程访问。

您可以.ssh/config在根目录上配置文件以为您添加用户。这样的事情应该起作用:

主机远程
    主机名remote.server.box
    用户=杰米
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.