可以以root用户身份而不是ubuntu用户身份SSH到EC2 ubuntu服务器中吗

可以以root用户身份而不是ubuntu用户身份SSH到EC2 ubuntu服务器中吗,ubuntu,jenkins,amazon-ec2,ssh,ssh-keys,Ubuntu,Jenkins,Amazon Ec2,Ssh,Ssh Keys,您好,我有3个来自服务器A、B的ubuntu EC2实例,我需要ssh到服务器C。我在服务器A、B中完成了以下步骤 1) Created a ssh key for the username - jenkins 将公钥从服务器A复制到服务器B,并添加到服务器c中 2) vi ~/.ssh/authorized_keys 然后更改了~/.ssh和授权密钥文件的文件夹访问权限,如下所示 3) chmod 600 ~/.ssh/ chmod 700 ~/.ssh/authorized_k

您好,我有3个来自服务器A、B的ubuntu EC2实例,我需要ssh到服务器C。我在服务器A、B中完成了以下步骤

1) Created a ssh key for the username - jenkins 
将公钥从服务器A复制到服务器B,并添加到服务器c中

2) vi ~/.ssh/authorized_keys 
然后更改了~/.ssh和授权密钥文件的文件夹访问权限,如下所示

3) chmod 600 ~/.ssh/
   chmod 700 ~/.ssh/authorized_keys
现在,从服务器上,一个正在运行的ssh命令以ubuntu用户的身份登录到服务器C

4) ssh -i privatekey ubuntu@12.12.12.12
当我从服务器B执行相同的操作时,我得到以下错误

5) ssh -i privatekey ubuntu@12.12.12.12
错误

 Warning: Identity file -i not accessible: No such file or directory.
 ssh: Could not resolve hostname /var/lib/jenkins/secrets/mykey: Name or service not known
 jenkins@ip-11-11-11-99:/home/ubuntu# ssh -v -i /var/lib/jenkins/secrets/mykey ubuntu@12.12.12.12
 OpenSSH_7.2p2 Ubuntu-4ubuntu2.4, OpenSSL 1.0.2g  1 Mar 2016
 debug1: Reading configuration data /etc/ssh/ssh_config
 debug1: /etc/ssh/ssh_config line 19: Applying options for *
 debug1: Connecting to 12.12.12.12 [12.12.12.12] port 22.
 debug1: Connection established.
 debug1: permanently_set_uid: 0/0
 debug1: identity file /var/lib/jenkins/secrets/mykey type 1
 debug1: key_load_public: No such file or directory
 debug1: identity file /var/lib/jenkins/secrets/mykey-cert type -1
 debug1: Enabling compatibility mode for protocol 2.0
 debug1: Local version string SSH-2.0-OpenSSH_7.2p2 Ubuntu-4ubuntu2.4
 debug1: Remote protocol version 2.0, remote software version OpenSSH_7.2p2 Ubuntu-4ubuntu2.4
 debug1: match: OpenSSH_7.2p2 Ubuntu-4ubuntu2.4 pat OpenSSH* compat 0x04000000
 debug1: Authenticating to 12.12.12.12:22 as 'ubuntu'
 debug1: SSH2_MSG_KEXINIT sent
 debug1: SSH2_MSG_KEXINIT received
 debug1: kex: algorithm: curve25519-sha256@libssh.org
 debug1: kex: host key algorithm: ecdsa-sha2-nistp256
 debug1: kex: server->client cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: none
 debug1: kex: client->server cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: none
 debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
 debug1: Server host key: ecdsa-sha2-nistp256 SHA256:28Mc4WE3B22oZ2ClomLspX5gQtwmzdNg82XEHgpI+vE
 debug1: Host '12.12.12.12' is known and matches the ECDSA host key.
 debug1: Found key in /root/.ssh/known_hosts:3
 debug1: rekey after 134217728 blocks
 debug1: SSH2_MSG_NEWKEYS sent
 debug1: expecting SSH2_MSG_NEWKEYS
 debug1: rekey after 134217728 blocks
 debug1: SSH2_MSG_NEWKEYS received
 debug1: SSH2_MSG_EXT_INFO received
 debug1: kex_input_ext_info: server-sig-algs=<rsa-sha2-256,rsa-sha2-512>
 debug1: SSH2_MSG_SERVICE_ACCEPT received
 debug1: Authentications that can continue: publickey
 debug1: Next authentication method: publickey
 debug1: Offering RSA public key: /var/lib/jenkins/secrets/mykey
 debug1: Authentications that can continue: publickey
 debug1: No more authentication methods to try.
 Permission denied (publickey).
我对我在服务器B中错过了什么感到困惑。为什么它忽略了以Ubuntu根用户身份登录,但它仍然在工作。如果访问权问题意味着它对服务器A的工作方式


有人请帮忙,先谢谢

谢谢你发布这个问题

问题:您可能使用不同的用户生成了密钥:

只需按照以下步骤操作,您就可以轻松上路了:

0)删除~/.ssh 删除以前的设置。别担心,我们会重新开始

1)将公钥从A&B复制到服务器C 以ubuntu用户身份登录到服务器A $ssh-keygen 接受默认文件位置 这将生成密钥 $ssh拷贝id ubuntu@ 键入密码

2)在服务器B上执行相同的步骤 3)耶!!!你可以走了

现在测试您的登录。你不需要更改许可证

尝试在~/.ssh/config中添加以下行

权限:-rw-r--r--

主持人C

IdentityFile~/.ssh/id_rsa

使用您的用户名


主机名C

嗨,我怀疑在服务器C中。当你添加服务器B的公钥时,你可能只添加到根用户的授权密钥文件中。确认。ssh进入服务器C,以Ubuntu用户身份登录,并使用以下命令运行检查授权密钥文件

 vi ~/.ssh/authorized_keys

我确信您没有在此文件中添加服务器B的公钥。您是在root用户的授权密钥中添加的。如果为空或仅存在默认密钥,请添加服务器b公钥并重试。让我们知道它是否有效

我猜你把错误的公钥(root不是ubuntu)复制到了授权密钥中。。。您可以通过比较键来确认。请将您的问题移至(删除此处,重新发布)。它是{noformat}主机C标识文件~/.ssh/id_rsa用户主机名{noformat}一些教程在ssh连接到服务器后立即创建用户,但它们以根用户的身份连接。在ec2中有点不同,因为它是以ubuntu用户的身份连接的,这有点让人困惑,我应该创建一个新用户(当通过根用户连接时,他们建议这样做)并授予sudo组特权吗?或者这会是过度杀戮吗?有人在fb中回答:乌本图应该很好。我通常不会部署到AWS,所以我习惯于以root用户的身份加入,创建一个新用户并进行自己的服务器强化。
 vi ~/.ssh/authorized_keys