I have been using paramiko for a while and everything works as expected, but when I left my test environment, I got this error when opening an ssh session
paramiko.ssh_exception.SSHException: Incompatible ssh server (no acceptable macs)
After tracking the error, I noticed that on my remote server I do not have some entries in my file /etc/ssh/sshd_config. None of my settings are listed in these MAC addresses:
- HMAC-SHA1
- HMAC-MD5
- HMAC-SHA1-96
- HMAC-MD5-96
However, it works in both one and the other. What could be the reason for this? I do not have rsa keys stored in one (the remote server does not allow writing).
Remote server sshd_config
#
# Allow Ciphers and MACs
#
Ciphers aes256-ctr,aes192-ctr,aes128-ctr,arcfour256,arcfour128
MACs umac-64@openssh.com,hmac-ripemd160,hmac-sha2-512,hmac-sha2-256
RemoteAccess.py
class RemoteAccess():
def __init__(self, host="abc123", username="abc", password="123"):
self.name = host
self.client = paramiko.SSHClient()
self.client.load_system_host_keys()
self.client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
self.client.connect(host, username=username, password=password)
Links to which I referred:
Python - passive - incompatible ssh server
paramiko Incompatible ssh peer (without acceptable kex algorithm)