Вы пытаетесь пропустить проверку ключа хоста, установив StrictHostKeyChecking
на no
.
Но вы должны сделать это перед проверкой, то есть перед session.connect()
.
В любом случае, вы никогда не должны этого делать, если вам не нужна безопасность. Проверка ключа хоста защищает вас от атак man-in-the-middle .
Вместо этого настройте ожидаемый ключ хоста, чтобы JSch проверил его.
Например:
JSch.setKnownHosts
, обеспечивающий путь к файлу .ssh/known_hosts
. Для генерации .ssh/known_hosts
-подобного файла вы можете использовать команду ssh-keyscan
из OpenSSH. Если вы подключаетесь к серверу * nix, вы должны иметь доступную команду, просто запустите ssh-keyscan example.com > known_hosts
. Он будет иметь формат, такой как: example.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA0hVqZOvZ7yWgie9OHdTORJVI5fJJoH1yEGamAd5G3werH0z7e9ybtq1mGUeRkJtea7bzru0ISR0EZ9HIONoGYrDmI7S+BiwpDBUKjva4mAsvzzvsy6Ogy/apkxm6Kbcml8u4wjxaOw3NKzKqeBvR3pc+nQVA+SJUZq8D2XBRd4EDUFXeLzwqwen9G7gSLGB1hJkSuRtGRfOHbLUuCKNR8RV82i3JvlSnAwb3MwN0m3WGdlJA8J+5YAg4e6JgSKrsCObZK7W1R6iuyuH1zA+dtAHyDyYVHB4FnYZPL0hgz2PSb9c+iDEiFcT/lT4/dQ+kRW6DYn66lS8peS8zCJ9CSQ==
И ссылается на сгенерированный файл known_hosts
в вашем JSch-коде. Если вы находитесь в Windows, вы можете получить сборку Windows из проекта Win32-OpenSSH или Git для Windows. JSch.getHostKeyRepository().add()
, чтобы обеспечить ожидаемый ключ хоста (например, жестко запрограммированные, как и другие учетные данные). См. Создание экземпляра JSch HostKey из открытого ключа в формате .pub . Думал, что я не могу вызвать cmd из WSL bash, но мне просто нужно было назвать его как cmd.exe
, и он отлично открывается. : Facepalm:
Отличный ответ с более подробной информацией об интеграции WSL с VS-кодом: Как использовать Bash для Ubuntu в Windows (WSL) для моего терминала VS Code?
bash
, но чаще используется bash.
– Brandon
14 July 2018 в 01:37
bash
изнутри в VS-коде, который откроет WSL-bash, но я использую bash чаще, чем cmd, поэтому я хочу, чтобы bash был по умолчанию.
– Brandon
14 July 2018 в 02:02