Score:1

I can no longer SSH into a machine that I have a wired connection to. How can I get back in?

ru flag

I am developing software on a custom board that is running linux. I access this board through ssh on a wired connection. I have a usb-ethernet adapter on my machine, and then the ethernet cable connects to this custom board. I had ssh keys set up so I would not need to type a password every time. Everything was working fine until I shared internet with that board and ran a git pull to update the software on it. (That worked fine btw). After I changed the ip address back to manual and put the old ip back, I got a warning about the host being changed. This is from the internet so the ip's don't match, but it looked something like this:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
51:82:00:1c:7e:6f:ac:ac:de:f1:53:08:1c:7d:55:68.
Please contact your system administrator.
Add correct host key in /Users/isaacalves/.ssh/known_hosts to get rid of this message.
Offending RSA key in /Users/isaacalves/.ssh/known_hosts:12
RSA host key for 104.131.16.158 has changed and you have requested strict checking.
Host key verification failed.

I keep being asked for the password when I try and ssh even though it shouldnt. The most peculiar part is that when I type the password, it doesn't accept it. How do I know it is the right password? Because I am using screen to serial in to the board and have logged in with that password through screen. I can access the board then (host) through screen its just that screen is really slow and I need to ssh for vscode and other things.

I have even uninstalled ssh client on my machine and reinstalled it. Nothing. I removed known_hosts folder on my machine and it didn't help. The host can ssh to it's own IP address (not loopback), so I believe that it is accepting ssh requests. (Unless there is a short circuit there and its not actually using ssh when it uses its own IP. But I think it is).

I can access both the host and client files if needed. I have been stuck on this for 3 days for my job so any help would be greatly appreciated. I will post as much helpful things as I can think of.

SSH Attempt:

ellis77@CB461-EE10955:~/.ssh$ ssh [email protected] -vvv
OpenSSH_8.2p1 Ubuntu-4ubuntu0.2, OpenSSL 1.1.1f  31 Mar 2020
debug1: Reading configuration data /home/ellis77/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: include /etc/ssh/ssh_config.d/*.conf matched no files
debug1: /etc/ssh/ssh_config line 21: Applying options for *
debug2: resolve_canonicalize: hostname 169.254.132.152 is address
debug2: ssh_connect_direct
debug1: Connecting to 169.254.132.152 [169.254.132.152] port 22.
debug1: Connection established.
debug1: identity file /home/ellis77/.ssh/id_rsa type 0
debug1: identity file /home/ellis77/.ssh/id_rsa-cert type -1
debug1: identity file /home/ellis77/.ssh/id_dsa type -1
debug1: identity file /home/ellis77/.ssh/id_dsa-cert type -1
debug1: identity file /home/ellis77/.ssh/id_ecdsa type -1
debug1: identity file /home/ellis77/.ssh/id_ecdsa-cert type -1
debug1: identity file /home/ellis77/.ssh/id_ecdsa_sk type -1
debug1: identity file /home/ellis77/.ssh/id_ecdsa_sk-cert type -1
debug1: identity file /home/ellis77/.ssh/id_ed25519 type -1
debug1: identity file /home/ellis77/.ssh/id_ed25519-cert type -1
debug1: identity file /home/ellis77/.ssh/id_ed25519_sk type -1
debug1: identity file /home/ellis77/.ssh/id_ed25519_sk-cert type -1
debug1: identity file /home/ellis77/.ssh/id_xmss type -1
debug1: identity file /home/ellis77/.ssh/id_xmss-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.2
debug1: Remote protocol version 2.0, remote software version OpenSSH_8.2p1 Ubuntu-4ubuntu0.2
debug1: match: OpenSSH_8.2p1 Ubuntu-4ubuntu0.2 pat OpenSSH* compat 0x04000000
debug2: fd 3 setting O_NONBLOCK
debug1: Authenticating to 169.254.132.152:22 as 'root'
debug3: hostkeys_foreach: reading file "/home/ellis77/.ssh/known_hosts"
debug3: record_hostkey: found key type ECDSA in file /home/ellis77/.ssh/known_hosts:1
debug3: load_hostkeys: loaded 1 keys from 169.254.132.152
debug3: order_hostkeyalgs: prefer hostkeyalgs: [email protected],[email protected],[email protected],ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521
debug3: send packet: type 20
debug1: SSH2_MSG_KEXINIT sent
debug3: receive packet: type 20
debug1: SSH2_MSG_KEXINIT received
debug2: local client KEXINIT proposal
debug2: KEX algorithms: curve25519-sha256,[email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group14-sha256,ext-info-c
debug2: host key algorithms: [email protected],[email protected],[email protected],ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],ssh-ed25519,[email protected],rsa-sha2-512,rsa-sha2-256,ssh-rsa
debug2: ciphers ctos: [email protected],aes128-ctr,aes192-ctr,aes256-ctr,[email protected],[email protected]
debug2: ciphers stoc: [email protected],aes128-ctr,aes192-ctr,aes256-ctr,[email protected],[email protected]
debug2: MACs ctos: [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: MACs stoc: [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: compression ctos: none,[email protected],zlib
debug2: compression stoc: none,[email protected],zlib
debug2: languages ctos: 
debug2: languages stoc: 
debug2: first_kex_follows 0 
debug2: reserved 0 
debug2: peer server KEXINIT proposal
debug2: KEX algorithms: curve25519-sha256,[email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group14-sha256
debug2: host key algorithms: rsa-sha2-512,rsa-sha2-256,ssh-rsa,ecdsa-sha2-nistp256,ssh-ed25519
debug2: ciphers ctos: [email protected],aes128-ctr,aes192-ctr,aes256-ctr,[email protected],[email protected]
debug2: ciphers stoc: [email protected],aes128-ctr,aes192-ctr,aes256-ctr,[email protected],[email protected]
debug2: MACs ctos: [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: MACs stoc: [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: compression ctos: none,[email protected]
debug2: compression stoc: none,[email protected]
debug2: languages ctos: 
debug2: languages stoc: 
debug2: first_kex_follows 0 
debug2: reserved 0 
debug1: kex: algorithm: curve25519-sha256
debug1: kex: host key algorithm: ecdsa-sha2-nistp256
debug1: kex: server->client cipher: [email protected] MAC: <implicit> compression: none
debug1: kex: client->server cipher: [email protected] MAC: <implicit> compression: none
debug3: send packet: type 30
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug3: receive packet: type 31
debug1: Server host key: ecdsa-sha2-nistp256 SHA256:DJTgdLuz5rpLWLc/y2M7YJMqKu8g77Orjn3CyoRreoU
debug3: hostkeys_foreach: reading file "/home/ellis77/.ssh/known_hosts"
debug3: record_hostkey: found key type ECDSA in file /home/ellis77/.ssh/known_hosts:1
debug3: load_hostkeys: loaded 1 keys from 169.254.132.152
debug1: Host '169.254.132.152' is known and matches the ECDSA host key.
debug1: Found key in /home/ellis77/.ssh/known_hosts:1
debug3: send packet: type 21
debug2: set_newkeys: mode 1
debug1: rekey out after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug3: receive packet: type 21
debug1: SSH2_MSG_NEWKEYS received
debug2: set_newkeys: mode 0
debug1: rekey in after 134217728 blocks
debug1: Will attempt key: /home/ellis77/.ssh/id_rsa RSA SHA256:rk0afdhz18RlnxGQ0ejIyPKXNUnLvHDEv3BTu9u1kLY agent
debug1: Will attempt key: /home/ellis77/.ssh/id_dsa 
debug1: Will attempt key: /home/ellis77/.ssh/id_ecdsa 
debug1: Will attempt key: /home/ellis77/.ssh/id_ecdsa_sk 
debug1: Will attempt key: /home/ellis77/.ssh/id_ed25519 
debug1: Will attempt key: /home/ellis77/.ssh/id_ed25519_sk 
debug1: Will attempt key: /home/ellis77/.ssh/id_xmss 
debug2: pubkey_prepare: done
debug3: send packet: type 5
debug3: receive packet: type 7
debug1: SSH2_MSG_EXT_INFO received
debug1: kex_input_ext_info: server-sig-algs=<ssh-ed25519,[email protected],ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,[email protected]>
debug3: receive packet: type 6
debug2: service_accept: ssh-userauth
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug3: send packet: type 50
debug3: receive packet: type 51
debug1: Authentications that can continue: publickey,password
debug3: start over, passed a different list publickey,password
debug3: preferred gssapi-with-mic,publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering public key: /home/ellis77/.ssh/id_rsa RSA SHA256:rk0afdhz18RlnxGQ0ejIyPKXNUnLvHDEv3BTu9u1kLY agent
debug3: send packet: type 50
debug2: we sent a publickey packet, wait for reply
debug3: receive packet: type 51
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /home/ellis77/.ssh/id_dsa
debug3: no such identity: /home/ellis77/.ssh/id_dsa: No such file or directory
debug1: Trying private key: /home/ellis77/.ssh/id_ecdsa
debug3: no such identity: /home/ellis77/.ssh/id_ecdsa: No such file or directory
debug1: Trying private key: /home/ellis77/.ssh/id_ecdsa_sk
debug3: no such identity: /home/ellis77/.ssh/id_ecdsa_sk: No such file or directory
debug1: Trying private key: /home/ellis77/.ssh/id_ed25519
debug3: no such identity: /home/ellis77/.ssh/id_ed25519: No such file or directory
debug1: Trying private key: /home/ellis77/.ssh/id_ed25519_sk
debug3: no such identity: /home/ellis77/.ssh/id_ed25519_sk: No such file or directory
debug1: Trying private key: /home/ellis77/.ssh/id_xmss
debug3: no such identity: /home/ellis77/.ssh/id_xmss: No such file or directory
debug2: we did not send a packet, disable method
debug3: authmethod_lookup password
debug3: remaining preferred: ,password
debug3: authmethod_is_enabled password
debug1: Next authentication method: password
[email protected]'s password: 

After typing the correct password (which it shouldn't be asking for):

[email protected]'s password: 
debug3: send packet: type 50
debug2: we sent a password packet, wait for reply
debug3: receive packet: type 51
debug1: Authentications that can continue: publickey,password
Permission denied, please try again.
[email protected]'s password: 

Here is part of the sshd_config file from the host. Note password authentication is currently on, but I have turned it off and restarted the ssh service and it still asked for it.

# This is the sshd server system-wide configuration file.  See
# sshd_config(5) for more information.

# This sshd was compiled with PATH=/usr/local/sbin:/usr/local/bin:/usr/bin


# Logging
SyslogFacility AUTH
LogLevel VERBOSE

# Authentication:

#LoginGraceTime 2m
PermitRootLogin yes
#StrictModes yes

#AuthorizedPrincipalsFile none

#AuthorizedKeysCommand none
#AuthorizedKeysCommandUser nobody

# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
#HostbasedAuthentication no
# Change to yes if you don't trust ~/.ssh/known_hosts for
# HostbasedAuthentication
#IgnoreUserKnownHosts no
# Don't read the user's ~/.rhosts and ~/.shosts files
#IgnoreRhosts yes

# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication yes
#PermitEmptyPasswords no

And finally, the permission of both ssh directories: Client:

drwxrwxr-x  2 ellis77 ellis77 4096 Jun 17 10:08 .
drwxr-xr-x 27 ellis77 ellis77 4096 Jun 17 09:58 ..
-rw-r--r--  1 ellis77 ellis77    0 Jun 17 10:07 config
-rw-------  1 ellis77 ellis77 2610 Jun 17 09:59 id_rsa
-rw-------  1 ellis77 ellis77  575 Jun 17 09:59 id_rsa.pub
-rw-r--r--  1 ellis77 ellis77  222 Jun 17 10:08 known_hosts

Host:

drwxr-xr-x  2 root root   4096 Sep 14  2020 .
drwxr-xr-x 38 root root   4096 Jun 15 13:01 ..
-rw-r--r--  1 root root 525809 Aug 31  2020 moduli
-rw-r--r--  1 root root   1484 Sep 15  2020 ssh_config
-rw-------  1 root root   1381 Sep 14  2020 ssh_host_dsa_key
-rw-r--r--  1 root root    600 Sep 14  2020 ssh_host_dsa_key.pub
-rw-------  1 root root    505 Sep 14  2020 ssh_host_ecdsa_key
-rw-r--r--  1 root root    172 Sep 14  2020 ssh_host_ecdsa_key.pub
-rw-------  1 root root    399 Sep 14  2020 ssh_host_ed25519_key
-rw-r--r--  1 root root     92 Sep 14  2020 ssh_host_ed25519_key.pub
-rw-------  1 root root   2590 Sep 14  2020 ssh_host_rsa_key
-rw-r--r--  1 root root    564 Sep 14  2020 ssh_host_rsa_key.pub
-rw-r--r--  1 root root   3126

Thanks in advance. I will be happy to provide anything else needed.

Lastly, to confirm the host ip:

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 169.254.132.152  netmask 255.255.0.0  broadcast 169.254.255.255
        inet6 fe80::20a:35ff:fe00:122  prefixlen 64  scopeid 0x20<link>
        ether 00:0a:35:00:01:22  txqueuelen 1000  (Ethernet)
        RX packets 1  bytes 46 (46.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 381  bytes 16730 (16.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 27  base 0xb000  

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1  (Local Loopback)
        RX packets 212  bytes 18477 (18.0 KiB)

Edit: I just logging in SSH with my laptop (with no keys set up on my laptop) and it accepted the password. So the problem seems to be with my work machine.

hr flag
I'm confused - there seem to be 2 questions here, the first about host key verification, and the second about public key authentication. Which part are you asking about?
Caden Ellis avatar
ru flag
Well, both I guess. The password won't work, but it shouldn't be asking for the password anyway with the keys. At this point, if I can log in with the password I don't care it the public keys don't work.
hr flag
OK so the host key verification message should just go away if you accept it. For the RSA verification part, check that there is a copy of `ellis77`'s public key (the public key corresponding to `/home/ellis77/.ssh/id_rsa`) in **root**'s `authorized_keys` file on the board (typically located at `/root/.ssh/authorized_keys`). Is your serial session to the board logged in as `root` or as some other user?
Caden Ellis avatar
ru flag
@steeldriver my serial session is with root. The keys in the places specified match. I also edited the post to say that I could ssh with my laptop and it accepted the password just fine. Just not the other machine.
hr flag
Have you checked the auth.log / journal on the board for relevant messages? For example `journalctl -xe -u ssh.service` or `grep sshd /var/log/auth.log`?
Score:1
ru flag

So it was very silly but subtle. After I shared internet with the board and ran dhcpcd, I set the IP address of the USB Ethernet connection back to manual mode and set the address to 169.254.132.152...which was the same as the board I was trying to SSH into. Rookie mistake. It needs to be a different address in a way that would be the same after masking with the net mask... for example 169.254.132.150. Then we are on the same mask but not hogging the same address. This explains why I could ping, and why it would not accept my "password" because I was ssh-ing into my connection...not my board.

Tip: When you change the IP address of the connection, make sure you unplug your USB and plug it back in so it will update.

sudodus avatar
jp flag
Thanks for sharing your solution.
mangohost

Post an answer

Most people don’t grasp that asking a lot of questions unlocks learning and improves interpersonal bonding. In Alison’s studies, for example, though people could accurately recall how many questions had been asked in their conversations, they didn’t intuit the link between questions and liking. Across four studies, in which participants were engaged in conversations themselves or read transcripts of others’ conversations, people tended not to realize that question asking would influence—or had influenced—the level of amity between the conversationalists.