diff --git a/src/main/kotlin/app/termora/SFTPPtyTerminalTab.kt b/src/main/kotlin/app/termora/SFTPPtyTerminalTab.kt
index 6acab17..664c4ae 100644
--- a/src/main/kotlin/app/termora/SFTPPtyTerminalTab.kt
+++ b/src/main/kotlin/app/termora/SFTPPtyTerminalTab.kt
@@ -8,6 +8,7 @@ import org.apache.commons.io.Charsets
import org.apache.commons.io.FileUtils
import org.apache.commons.io.IOUtils
import org.apache.commons.lang3.StringUtils
+import org.apache.sshd.client.ClientBuilder
import org.apache.sshd.client.SshClient
import org.apache.sshd.client.session.ClientSession
import org.apache.sshd.common.config.keys.writer.openssh.OpenSSHKeyPairResourceWriter
@@ -83,11 +84,19 @@ class SFTPPtyTerminalTab(windowScope: WindowScope, host: Host) : PtyHostTerminal
commands.add("UserKnownHostsFile=${File(Application.getBaseDataDir(), "known_hosts").absolutePath}")
}
-
// Compression
commands.add("-o")
commands.add("Compression=yes")
+ // HostKeyAlgorithms 让 SFTP 命令的顺序和 sshd 的一致 这样可以避免 known_hosts 文件不一致问题
+ val hostKeyAlgorithms = ClientBuilder.setUpDefaultSignatureFactories(true).joinToString(",") { it.name }
+ commands.add("-o")
+ commands.add("HostKeyAlgorithms=${hostKeyAlgorithms}")
+
+ // 不使用配置文件
+ commands.add("-F")
+ commands.add("/dev/null")
+
// port
commands.add("-P")
commands.add(host.port.toString())
diff --git a/src/main/resources/i18n/messages.properties b/src/main/resources/i18n/messages.properties
index 64621ff..68c0562 100644
--- a/src/main/resources/i18n/messages.properties
+++ b/src/main/resources/i18n/messages.properties
@@ -39,8 +39,8 @@ termora.doorman.mnemonic.incorrect=Incorrect mnemonic
# Hosts
-termora.host.verify-server-key=Host [{0}] key has been changed!
{1} key fingerprint is {2}
Are you sure you want to continue connecting?
-termora.host.modified-server-key=HOST [{0}] IDENTIFICATION HAS CHANGED!
Expected: {1} key fingerprint is {2}
Actual: {3} key fingerprint is {4}
Are you sure you want to continue connecting?
+termora.host.verify-server-key=Host [{0}] key has been changed
{1} key fingerprint is {2}
Are you sure you want to continue connecting?
+termora.host.modified-server-key=HOST [{0}] IDENTIFICATION HAS CHANGED
Expected: {1} key fingerprint is {2}
Actual: {3} key fingerprint is {4}
Are you sure you want to continue connecting?
# Settings
diff --git a/src/main/resources/i18n/messages_zh_CN.properties b/src/main/resources/i18n/messages_zh_CN.properties
index 5aa87d4..8744a4d 100644
--- a/src/main/resources/i18n/messages_zh_CN.properties
+++ b/src/main/resources/i18n/messages_zh_CN.properties
@@ -37,8 +37,8 @@ termora.doorman.mnemonic.incorrect=助记词错误
# Hosts
-termora.host.verify-server-key=主机 [{0}] 密钥已经改变!
{1} 的指纹 {2}
你确定要继续连接吗?
-termora.host.modified-server-key=主机 [{0}] 身份已发生变化!
期待: {1} 的指纹 {2}
实际: {3} 的指纹 {4}
你确定要继续连接吗?
+termora.host.verify-server-key=主机 [{0}] 密钥已经改变
{1} 的指纹 {2}
你确定要继续连接吗?
+termora.host.modified-server-key=主机 [{0}] 身份已发生变化
期待: {1} 的指纹 {2}
实际: {3} 的指纹 {4}
你确定要继续连接吗?
termora.setting=设置
diff --git a/src/main/resources/i18n/messages_zh_TW.properties b/src/main/resources/i18n/messages_zh_TW.properties
index eb047f7..18c4bc8 100644
--- a/src/main/resources/i18n/messages_zh_TW.properties
+++ b/src/main/resources/i18n/messages_zh_TW.properties
@@ -38,8 +38,8 @@ termora.doorman.mnemonic.incorrect=助記詞錯誤
# Hosts
-termora.host.verify-server-key=主機 [{0}] 金鑰已經改變!
{1} 的指紋 {2}
你確定要繼續連線嗎?
-termora.host.modified-server-key=主機 [{0}] 身分已變更!
期待: {1} 的指紋 {2}
實際: {3} 的指紋 {4}
你確定要繼續連線嗎?
+termora.host.verify-server-key=主機 [{0}] 金鑰已經改變
{1} 的指紋 {2}
你確定要繼續連線嗎?
+termora.host.modified-server-key=主機 [{0}] 身分已變更
期待: {1} 的指紋 {2}
實際: {3} 的指紋 {4}
你確定要繼續連線嗎?
termora.setting=設定