authorized_keys不适用于新用户

时间:2014-03-01 20:21:50

标签: linux amazon-web-services ssh amazon-ec2 ssh-keys

我想在EC2云中的AWS下运行的Linux机器中设置一个ssh密钥。

首先,我安装了 cygwin ,然后我按照以下步骤操作:

  1. ssh-keygen -t dsa -f ~/.ssh/<key name> -C "<username of remote server>@<ip>"
  2. cat ~/.ssh/<key name>.pub | ssh <username of remote server>@<ip> "cat >> ~/.ssh/authorized_keys"
  3. 现在第一个语句成功执行,但第二个语句显示

    bash: /home/<username of server>/.ssh/authorized_keys: No such file exists
    

    在此之前,我以root模式连接到远程计算机并创建了用户,我在命令1,2(用户名)中指定了

    我看到该文件在我明确创建的用户的远程服务器中不存在,但它存在于用户 root

2 个答案:

答案 0 :(得分:1)

创建新的Linux实例时,指定要使用的密钥对。您可以选择创建密钥对,下载公钥或上传私钥。

在您的步骤中,您永远不会引用您在创建实例时指定的密钥对。所以第二个命令应该是这样的:

cat ~/.ssh/<key name>.pub | ssh -i ~/.ssh/<key specified when launching instance> ec2-user@<public id> ...
根据您用于创建实例的AMI,ec2-user可能会有所不同 - 例如,ubuntu是ubuntu实例的默认用户。

答案 1 :(得分:1)

  

bash:/home//.ssh/authorized_keys:不存在此类文件

创建新用户时,默认情况下不会创建~/.ssh目录。你已经创建了它。然后,您必须创建~/.ssh/authorized_keys文件,您将复制公钥。

在您的服务器上,检查~/.ssh~/.ssh/authorized_keys是否存在。看看你有的错误,它似乎没有。所以马上创造它。

BTW,上述语句中的~表示用户的主目录。因此,如果您的用户名为user1,那么它将是/home/user1/.ssh/home/user1/.ssh/authorized_keys