macos - 如何添加或更改 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 文件中添加路径。
解决方案
我探索了在
~/.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
命令设置。
推荐阅读
- php - 通过 attach() 方法 Laravel 存储值时未知的列字段
- curl - 通过 Curl API 下载 Curl 很慢
- java - 在c#中转换以16为底的字符串BigInteger
- python - Django更改模型字段属性?
- ruby-on-rails - 如何处理带有隐藏复选框的滑块
- python - Pycharm:无法导入 lightfm
- ruby-on-rails - 是否可以通过使用 ruby on rails 来执行二进制文件
- android - 查询包含子集合的文档
- php - 当日期字段中包含时间和日期时,获取两个日期之间的 SQL 数据
- c# - Winform 控件成为其他控件的子控件,而不是添加到窗体中。