我的问题如下。我希望配置.ssh / config,当我写
时ssh exampleX
和我写的一样
ssh -i /path/to/key.pem user @ address
请注意,上述命令有效。
根据答案here我尝试将文件创建为
Host exampleX
HostName address
User user
IdentityFile /path/to/key.pem
取自
ssh -i /path/to/key.pem user @ address
但是当我跑步时
ssh exampleX
我收到错误
ssh:无法解析主机名exampleX:名称或服务未知
但如果我手动运行命令
一切正常。我在创建文件时犯了哪个错误?ssh -i /path/to/key.pem user @ address
如果我跑
sudo ssh exampleX -v
我得到了输出
OpenSSH_7.2p2 Ubuntu-4ubuntu2.2, OpenSSL 1.0.2g 1 Mar 2016
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
ssh: Could not resolve hostname exampleX: Name or service not known
但如果我在没有sudo的情况下运行它,我会得到更长的流,以
结束debug1: Authentications that can continue: publickey
debug1: Trying private key: /path/to/key.pem
Load key "/path/to/key.pem": Permission denied
debug1: No more authentication methods to try.
Permission denied (publickey).
由于一些困惑,我重申了我的问题
配置文件必须是什么样的,以便运行
ssh exampleX
与运行
的工作方式相同ssh -i /path/to/key.pem user@address
答案 0 :(得分:0)
(由于问题已编辑,我相应地编辑了我的答案)
检查文件〜/ .ssh / config 的权限:它必须具有严格的权限:用户读/写,其他人无法访问,如<强>男人页面。
检查您是否具有对文件 /path/to/key.pem 的读取权限(作为用户)。您与 ssh 一起使用的调试选项表示您没有。
答案 1 :(得分:0)
当您通过sudo
运行命令时,您正在使用与.ssh/config
运行的用户对应的sudo
文件。如果确实需要以root身份运行此ssh命令,则需要将配置添加到~root/.ssh/config
而不是~/.ssh/config
。
如果可能,请以普通用户身份运行ssh
,而不是root
。