As part of a startup script I have to automatically open several gnome-terminal windows, one of those terminals automatically send:
ssh [email protected]
The limitation with this is that I still need to type a password to complete the SSH connection.
What I want to do is for my script to initiate the command and complete the connection. To that extent, I attempted to follow the instructions as outlined in the accepted answer here.
From the system I wish to connect from, I ran:
ssh-keygen
Enter file in which to save the key: /home/user/ssh/keys/server1key
It then prompted me to enter a passphrase. I left this empty, as I wasn't sure what it would be for, so I assumed setting one would require unlocking it with said passphrase each time I'd use it.
Continuing with the instructions linked above, I then ran and received the following:
ssh-copy-id user@IP
ERROR: No identities found
A quick search revealed that I needed to specify the location of the key, as it was not in the default save location, so I fixed that:
ssh-copy-id -i /home/user/ssh/keys/server1key.pub [email protected]
After asking for the server's password, it successfully added the key. However, upon attempting to log in with "ssh user@IP", I was still prompted for the password.
As far as I'm aware, I followed the linked instructions correctly, so either I'm missing something, or perhaps an existing configuration is preventing me for getting this to work?
Both systems use 18.04 and openssh.
It fails for the same reason that
ssh-copy-id
failed the first time - i.e. because you have chosen a non-default location for the identity file.You can resolve it in the same way, by adding
-i /home/user/ssh/keys/server1key
to yourssh
command - note that the client side needs the location of the private key file.From
man ssh
Alternatively, you may wish to create a
~/.ssh/config
file entry for the host along the lines ofAnother reason that
ssh-copy-id
fails is that the key hasn't been added to the SSH agent.First, check and start if
ssh-agent
is running:If you get in process ID, you can add your key:
With
-k
you add the key to the keychain.Check if keys are added with:
ssh-copy-id
should be working now.Hope this will work for you.. "sshpass -p yourpassword" it will automatically login to remote host.
[root@localhost .ssh]# sshpass -p password123 ssh -l root localhost
Just execute 2 commands:
Long answer:
And then: