Error while using ed25519
for host key and rsa
for authorization #470
Closed
Description
Hello, I'm a newer here.
I use atmoz/sftp, which is using ssh-ed25519
to verify the host key and ssh-rsa
to authorize login user, to setup a sftp server in docker and try to use sshj
to connect it.
// Docker
docker run \
-v /mydir/id_rsa.pub:/home/foo/.ssh/keys/id_rsa.pub:ro \
-v /mydir/ssh_host_ed25519_key:/etc/ssh/ssh_host_ed25519_key \
-v /mydir/ssh_host_rsa_key:/etc/ssh/ssh_host_rsa_key \
-v /shared:/home/foo \
-p 2222:22 \
-d atmoz/sftp \
foo::1001
I use the default config to connect, it throw an error:
// Code
val ssh = SSHClient()
// Log
Can not connect remote server: Could not verify `ssh-rsa` host key with fingerprint `6d:4a:ab:ab:fe:4d:0d:6f:28:3a:d1:a7:a2:ef:8f:84` for `localhost` on port 2222
And my known_hosts
is: [localhost]:2222 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICJvGoR2swFI20//fm5a2rXygz3rA4Vk9AggWOWdPwy3
I guess it use a wrong algorithm, so I modify the order of signature factories:
// Code
val config = DefaultConfig()
config.setSignatureFactories(
SignatureEdDSA.Factory(), // it's the last one by default
SignatureECDSA.Factory256(),
SignatureECDSA.Factory384(),
SignatureECDSA.Factory521(),
SignatureRSA.Factory(),
SignatureDSA.Factory()
)
ssh = SSHClient(config)
Then it works.
I'm not sure this is the right solution. Can anyone help me to understand this?
Metadata
Assignees
Labels
No labels