无法在两个 AMI ec2 实例之间建立 SSH 连接

无法在两个 AMI ec2 实例之间建立 SSH 连接

尝试在两个 ec2 实例之间建立 ssh 连接。将主机 Aid_rsa.pub密钥复制到主机 B 的authorized_keys文件

[root@ip-172-31-9-173 .ssh]# cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDTTRSTwBClsq7/punxLQvq00Ba7iMZRbQKAQhC+GVuQFB2LfWk9Hsetu4CqHoGo4R4BJ/SW/4v+AfKlmQ/kA8WrQ12R0dR9cuhEbbnltMXSauwrsndIf4egJVzJs3BM12jXEx+E6wSlK8nUu3xpmY12WUkJOAWfWJ6rnE4XArIcmtNzfpJyZgFhNv2fKYRBTCgU0l4HLo2uIiQj8/aLT2gQeRUdARNn3QLBrITMN6rojo1vmWYnXhjWxeUoYVDj5+bsrqfbAtyzPm43WS+2RZ0T1Rr50+REl+jin0y108v04me7BluidN013oj+gLI73A86/qBgo08l5RwG2p+oOzf root@ip-172-31-9-173


[root@ip-172-31-11-205 .ssh]# cat authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDTTRSTwBClsq7/punxLQvq00Ba7iMZRbQKAQhC+GVuQFB2LfWk9Hsetu4CqHoGo4R4BJ/SW/4v+AfKlmQ/kA8WrQ12R0dR9cuhEbbnltMXSauwrsndIf4egJVzJs3BM12jXEx+E6wSlK8nUu3xpmY12WUkJOAWfWJ6rnE4XArIcmtNzfpJyZgFhNv2fKYRBTCgU0l4HLo2uIiQj8/aLT2gQeRUdARNn3QLBrITMN6rojo1vmWYnXhjWxeUoYVDj5+bsrqfbAtyzPm43WS+2RZ0T1Rr50+REl+jin0y108v04me7BluidN013oj+gLI73A86/qBgo08l5RwG2p+oOzf root@ip-172-31-9-173

错误:

[root@ip-172-31-9-173 ~]# ssh [email protected]
Permission denied (publickey).

不确定这里缺少什么。

答案1

您在启动与第二台计算机的连接的计算机中缺少私钥 id_rsa。

如果以 root 身份执行,请将其放在 /root/.ssh/id_rsa 上。另外不要忘记 SSH 对权限很挑剔,所以你必须这样做:

chmod 700 /root/.ssh
chmod 600 /root/.ssh/id_rsa

从长远来看,请考虑不要以 root 身份工作,而使用普通用户。

答案2

来自@l0ckm4的评论

您实际上可以通过提供username和 来进行 sshpassword吗?如果没有,那么如果您可以访问该文件,请确保您有一个AllowUsers 条目/etc/ssh/sshd_config,并且您允许 SSH 访问该文件顶部的子网。如果您确实修改了, sshd_config请记住重新启动SSH service.


  1. 请检查sshd_config您是否有:

AllowUsers

DenyGroups

DenyUsers

设置以及是否允许您访问遥控器。


  1. 有时它也有助于known_hosts在目录中重置此文件$HOME/.ssh

cat /dev/null > $HOME/.ssh/known_hosts

  1. 检查是否denyhosts已安装以及是否IP在文件中阻止了您的地址hosts

如果您多次尝试使用错误的凭据通过 SSH 登录而将自己的 IP 地址列入黑名单,那么您可以使用控制台连接到您的服务(使用控制台/VNC 连接到您的 VPS)并使用以下命令删除该阻止:

  • 停止denyhosts服务(systemctl stop denyhosts/etc/init.d/denyhosts stop
  • 从 /etc/hosts.deny 中删除包含 IP 的行
  • 从文件中删除带有 IP 的行/var/lib/denyhosts/hosts*(注意:并非所有文件都会包含 IP)
  • 删除带有 IP 的行/var/lib/denyhosts/user-hosts
  • IPTABLES删除'表上的行
  • 启动denyhosts服务

  1. 检查你是否做对了port

如果这不是问题,这里是创建密钥并将其复制到远程的步骤:

在本地系统上创建密钥:

ssh-keygen -o -b 4096 -t rsa -C [email protected]

或者:

ssh-keygen -t rsa -b 4096 -f ~/.ssh/vps-cloud.web-server.key -C "My web-server key"

系统将提示您提供私钥的密码。我建议您在出现提示时设置密码。


  • -t rsa :指定要创建的密钥的类型。对于协议版本 1,可能的值为“rsa1”;对于协议版本 2,可能的值为“dsa”、“ecdsa”、“ed25519”或“rsa”。
  • -b 4096 :指定要创建的密钥中的位数
  • -f ~/.ssh/vps-cloud.web-server.key :指定密钥文件的文件名。
  • -C ”[电子邮件受保护]" : 设置新评论。

如果您希望能够从 root 帐户访问服务器,请执行su并重复上述命令。

  1. $HOME/.ssh/id_rsa– 包含您的私钥。
  2. $HOME/.ssh/id_rsa.pub– 包含您的公钥。

将密钥复制到远程:

ssh-copy-id [email protected]

或者:

sh-copy-id -i $HOME/.ssh/id_rsa.pub [email protected]

或者:

首先.ssh在远程服务器上创建目录

ssh [email protected] "umask 077; test -d .ssh || mkdir .ssh"

cat本地 ID。rsa.pub通过 ssh 文件和管道将公钥附加到远程服务器中

cat $HOME/.ssh/id_rsa.pub | ssh [email protected] "cat >> .ssh/authorized_keys"

或者:

cat ~/.ssh/id_rsa.pub | ssh -p 22000 [email protected] "cat >> ~/.ssh/authorized_keys"

如果您希望每个会话只能输入key一次密码,请将其添加到您的.bashrc文件中:

eval `ssh-agent`
ssh-add

然后系统会在终端/shell 启动时要求您输入密码,而不是再次要求您输入密码。

相关内容