尝试在两个 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
.
- 请检查
sshd_config
您是否有:
AllowUsers
DenyGroups
DenyUsers
设置以及是否允许您访问遥控器。
- 有时它也有助于
known_hosts
在目录中重置此文件$HOME/.ssh
:
cat /dev/null > $HOME/.ssh/known_hosts
- 检查是否
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
服务
- 检查你是否做对了
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
并重复上述命令。
$HOME/.ssh/id_rsa
– 包含您的私钥。$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 启动时要求您输入密码,而不是再次要求您输入密码。