What should we add?
This is essentially a mimic of AgnostiqHQ/covalent-slurm-plugin#45, and the PR there (AgnostiqHQ/covalent-slurm-plugin#47) would work equally well here.
Currently, client_keys in asyncssh.connect() is set to client_keys=[self.ssh_key_file], and self.ssh_key_file is coded such that it can only be a single path, as shown below. However, the authentication process on some machines requires a list[tuple(str, str)] to be passed that has the SSH key and a certificate file, respectively.
|
conn = await asyncssh.connect( |
|
self.hostname, |
|
username=self.username, |
|
client_keys=[self.ssh_key_file], |
|
known_hosts=None, |
|
) |
Describe alternatives you've considered.
There are no alternatives if you require a certificate to SSH because the current code is hard-coded to only accept an SSH key as the authentication method.
What should we add?
This is essentially a mimic of AgnostiqHQ/covalent-slurm-plugin#45, and the PR there (AgnostiqHQ/covalent-slurm-plugin#47) would work equally well here.
Currently,
client_keysinasyncssh.connect()is set toclient_keys=[self.ssh_key_file], andself.ssh_key_fileis coded such that it can only be a single path, as shown below. However, the authentication process on some machines requires alist[tuple(str, str)]to be passed that has the SSH key and a certificate file, respectively.covalent-ssh-plugin/covalent_ssh_plugin/ssh.py
Lines 224 to 229 in dcd5fc2
Describe alternatives you've considered.
There are no alternatives if you require a certificate to SSH because the current code is hard-coded to only accept an SSH key as the authentication method.