我有一个仅具有密钥身份验证的 SSH 服务器,我想为新用户添加一个密钥。
我以一个用户(kidmose)的身份登录,尝试将密钥附加到新用户(远程)的authorized_keys,但失败了:
kidmose@hech-remote-control:~$ sudo cat .ssh/id_rsa.pub > /home/remote/.ssh/authorized_keys
-bash: /home/remote/.ssh/authorized_keys: Permission denied
我sudo su
首先要做的事情是:
kidmose@hech-remote-control:~$ sudo su
[sudo] password for kidmose:
root@hech-remote-control:/home/kidmose# cat .ssh/id_rsa.pub > /home/remote/.ssh/authorized_keys
奖金信息:
kidmose@hech-remote-control:~$ ll /home/remote/.ssh/authorized_keys
-rw-r--r-- 1 remote remote 409 Oct 16 07:14 /home/remote/.ssh/authorized_keys
kidmose@hech-remote-control:~$ uname -a
Linux hech-remote-control.egki 3.13.0-36-generic #63-Ubuntu SMP Wed Sep 3 21:30:07 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
那么这两种方法之间的(相关)区别是什么?
答案1
在第一种情况下
kidmose@hech-remote-control:~$ sudo cat .ssh/id_rsa.pub > /home/remote/.ssh/authorized_keys
- 你的 bash (尝试)打开重定向到文件
/home/remote/.ssh/authorized_keys
- 然后执行
sudo cat .ssh/id_rsa.pub
由于您无权访问,命令失败。
答案2
在第一种情况下,唯一以超级用户权限运行的命令是cat
。重定向到/home/remote/.ssh/authorized_keys
以普通用户身份执行。
在第二种情况下,您切换到 root 帐户,并且所有命令都以超级用户的权限执行。