mirror of
https://github.com/LamGC/Oracle-Sentry.git
synced 2025-04-29 14:17:34 +00:00
fix: 修复 SSH 连接配置中的 keyPassword 设置无效的问题.
由于 mina-ssh 的设计问题, 如果手动设置 KeyIdentityProvider, 则 SshClient 中的 FilePasswordProvider 将对此无效(SshClient 的 FilePasswordProvider 只会对默认密钥路径 "~/id_rsa" 起作用), keyPassword 应直接在 FileKeyPairProvider 设置.
This commit is contained in:
parent
46ae196fe9
commit
d6738d635c
@ -44,10 +44,12 @@ public class InstanceSsh implements AutoCloseable {
|
||||
sshClient.setForwardingFilter(Constants.instance.getForwardingFilter());
|
||||
sshClient.setServerKeyVerifier(new OracleInstanceServerKeyVerifier(instance, authInfo));
|
||||
if (authInfo instanceof PublicKeyAuthInfo info) {
|
||||
sshClient.setKeyIdentityProvider(new FileKeyPairProvider(info.getPrivateKeyPath().toPath()));
|
||||
FileKeyPairProvider fileKeyPairProvider = new FileKeyPairProvider(info.getPrivateKeyPath().toPath());
|
||||
if (!Strings.isNullOrEmpty(info.getKeyPassword())) {
|
||||
sshClient.setFilePasswordProvider(FilePasswordProvider.of(info.getKeyPassword()));
|
||||
fileKeyPairProvider.setPasswordFinder(FilePasswordProvider.of(info.getKeyPassword()));
|
||||
log.info("已设置密钥解密密码.");
|
||||
}
|
||||
sshClient.setKeyIdentityProvider(fileKeyPairProvider);
|
||||
} else if (authInfo instanceof PasswordAuthInfo info) {
|
||||
sshClient.addPasswordIdentity(info.getPassword());
|
||||
} else {
|
||||
|
Loading…
Reference in New Issue
Block a user