LeastSquaresWonderer
LeastSquaresWonderer

Reputation: 530

Configure ssh config file for certain command

My problem is the following. I wish to configure the .ssh/config as such, that when I write

ssh exampleX

It is the same as if I wrote

ssh -i /path/to/key.pem user@address

Note that the above command works.

Following the answers here I tried to create the file as

Host exampleX
    HostName address
    User user
    IdentityFile /path/to/key.pem

Taken from

ssh -i /path/to/key.pem user@address

Yet when I run

ssh exampleX

I get the error

ssh: Could not resolve hostname exampleX: Name or service not known

But if I manually run the command

ssh -i /path/to/key.pem user@address

everything works. Where am I making the mistake in creating the file?

Edit

If I run

sudo ssh exampleX -v

I get the output

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

but if I run it without sudo i get a longer stream, that ends with

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).

Edit 2

Due to some confusion , I restate my question

What does the config file has to look like, so that running

ssh exampleX

will work the same as running

ssh -i /path/to/key.pem user@address

Upvotes: 1

Views: 1221

Answers (2)

Pierre François
Pierre François

Reputation: 6061

(Since the question was edited, I edited accordingly my answer)

  1. Check the permissions of the file ~/.ssh/config: it must have strict permissions: read/write for the user, and not accessible by others, as explained in the man page.

  2. Check also you have read access (as a user) to the file /path/to/key.pem. The debug option you used with ssh suggests you don't have.

Upvotes: 0

ghoti
ghoti

Reputation: 46856

When you run your command through sudo, you are using the .ssh/config file that corresponds to the user that sudo runs as. If you really need to run this ssh command as root, you need the configuration added to ~root/.ssh/config instead of ~/.ssh/config.

If possible, run your ssh as a normal user, not as root.

Upvotes: 0

Related Questions