mirror of
https://github.com/LamGC/Oracle-Sentry.git
synced 2025-04-29 22:27: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.setForwardingFilter(Constants.instance.getForwardingFilter());
|
||||||
sshClient.setServerKeyVerifier(new OracleInstanceServerKeyVerifier(instance, authInfo));
|
sshClient.setServerKeyVerifier(new OracleInstanceServerKeyVerifier(instance, authInfo));
|
||||||
if (authInfo instanceof PublicKeyAuthInfo info) {
|
if (authInfo instanceof PublicKeyAuthInfo info) {
|
||||||
sshClient.setKeyIdentityProvider(new FileKeyPairProvider(info.getPrivateKeyPath().toPath()));
|
FileKeyPairProvider fileKeyPairProvider = new FileKeyPairProvider(info.getPrivateKeyPath().toPath());
|
||||||
if (!Strings.isNullOrEmpty(info.getKeyPassword())) {
|
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) {
|
} else if (authInfo instanceof PasswordAuthInfo info) {
|
||||||
sshClient.addPasswordIdentity(info.getPassword());
|
sshClient.addPasswordIdentity(info.getPassword());
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
Reference in New Issue
Block a user