首页 > 解决方案 > 如何添加或更改 ssh 密钥默认位置?

问题描述

我在 OSX 上并试图连接到 aws 上的 ec2 实例。使用完整路径运行密钥文件名有效,否则会出现错误“找不到文件”。

 ssh -i "my_key.pem" ubuntu@XXX.XX.XX.XX

警告:身份文件 my_key.pem 不可访问:没有这样的文件或目录。

ssh -i "~/.ssh/my_key.pem" ubuntu@XXX.XX.XX.XX

编辑:

更好的描述:只要密钥在 ~/.ssh/ 目录中,ssh 应该能够仅通过文件名找到它,而不是给出整个路径。我正在尝试将“~/.ssh/”目录添加到它查找密钥的 ssh 路径中。不适用于特定的主机或密钥。

具有整个路径的 ssh 有效。

过去,我已经能够运行 'ssh -i "my_key.pem" ubuntu@XXX.XX.XX.XX' 而无需提供密钥的完整路径。我探索了在 ~/.ssh/config 文件中添加路径。

标签: macossshssh-keys

解决方案


我探索了在~/.ssh/config文件中添加路径。

这应该是解决方案,但在这种情况下,SSH URL 变为:

ssh <HostEntry>

包括~/.ssh/config

Host <HostEntry>
   Hostname xxxx.xx.xx
   User ubuntu
   IdentityFile ~/.ssh/my_key.pem

我正在寻找的是更改默认情况下 ssh 查找密钥的目录的路径,这样整个路径就不需要传递密钥名称,例如-i my_key.pem.
然后ssh会自动在~/.ssh/目录中查找

简单的:

HOME=/my/folder1 ssh ubuntu@XXX.XX.XX.XX
# or
HOME=/my/folder2 ssh ubuntu@XXX.XX.XX.XX

ssh 将查找/my/folder1/.ssh/id_rsa/my/folder2/.ssh/id_rsa根据HOME路径值,仅为该ssh命令设置。


推荐阅读