为某些命令配置ssh配置文件

时间:2017-12-26 20:25:27

标签: ssh

我的问题如下。我希望配置.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).

编辑2

由于一些困惑,我重申了我的问题

配置文件必须是什么样的,以便运行

ssh exampleX

与运行

的工作方式相同
ssh -i /path/to/key.pem user@address

2 个答案:

答案 0 :(得分:0)

(由于问题已编辑,我相应地编辑了我的答案)

  1. 检查文件〜/ .ssh / config 的权限:它必须具有严格的权限:用户读/写,其他人无法访问,如<强>男人页面。

  2. 检查您是否具有对文件 /path/to/key.pem 的读取权限(作为用户)。您与 ssh 一起使用的调试选项表示您没有。

答案 1 :(得分:0)

当您通过sudo运行命令时,您正在使用与.ssh/config运行的用户对应的sudo文件。如果确实需要以root身份运行此ssh命令,则需要将配置添加到~root/.ssh/config而不是~/.ssh/config

如果可能,请以普通用户身份运行ssh,而不是root