Ste*_*lsh 8 ssh amazon-web-services amazon-ec2 private-key
我在 AWS 上创建了两个 EC2 实例。我为他们每个人创建了一个密钥对。我下载了 .pem 私钥并将它们转换为.ppk
格式。我可以使用 PuTTY 及其 .ppk 私钥连接到我的每个 ec2 实例。但是如何从我的一个 ec2 实例通过 SSH 连接到另一个实例?我可以从另一个 ping 它们中任何一个的公共 DNS。但是,如果我从一个尝试 ssh 到另一个,我会得到:
权限被拒绝(公钥)。
小智 9
方法 1 - 在服务器上使用相同的密钥:
将密钥转换为 openssh 格式并将私钥上传到服务器。当您 ssh 到目标主机时,指定私钥文件:
ssh -i mykey.pem private.ip.of.other.server
Run Code Online (Sandbox Code Playgroud)
方法 2 - 创建新密钥
在每台服务器上运行:
ssh-keygen
Run Code Online (Sandbox Code Playgroud)
按回车回车。您将有两个文件:
.ssh/id_rsa
.ssh/id_rsa.pub
Run Code Online (Sandbox Code Playgroud)
在服务器 A 上, cat 并将公钥复制到剪贴板:
cat ~/.ssh/id_rsa.pub
[select and copy to your clipboard]
Run Code Online (Sandbox Code Playgroud)
ssh 进入服务器 B,并将其内容附加到它的 authorized_keys 文件:
cat >> ~/.ssh/authorized_keys
[paste your clipboard contents]
[ctrl+d to exit]
Run Code Online (Sandbox Code Playgroud)
现在从服务器 A ssh:
ssh -i ~/.ssh/id_rsa private.ip.of.other.server
Run Code Online (Sandbox Code Playgroud)
有第三个和恕我直言是所谓的ssh 代理转发的最佳解决方案:
Run Code Online (Sandbox Code Playgroud)Host <ip-or-name-of-A-server> ForwardAgent yes
在服务器 A 上工作时,您的密钥可用于进一步的 ssh 通信 - 例如:
要检查这是否有效:
Run Code Online (Sandbox Code Playgroud)set|grep SSH_AUTH_ # output should be something like this: SSH_AUTH_SOCK=/tmp/ssh-sEHiRF4hls/agent.12042
笔记:
ps -e | grep [s]sh-agent
,对于 windows 检查 putty 的实用程序 pagent 和 plink 归档时间: |
|
查看次数: |
27534 次 |
最近记录: |