Какой был бы лучший способ сделать это:
Я хочу отправить файлы на разные удаленные компьютеры с помощью pscp
(с локальной машины Windows) или sshpass
(с локальной машины Unix) на случайные удаленные компьютеры.
Сначала я проверяю метод Java, если локальная машина имеет pscp
или sshpass
.
Затем я хочу проверить, есть ли у удаленной машины SSH.
Каким будет лучший способ сделать последний?
Я думал об использовании JSch для этого, но разве это не требует существования SSH на удаленной машине?
Это хороший способ в целом?
Единственный способ проверить существование SSH удаленно - это фактически попытаться подключиться.
Более технически, чтобы проверить, открыт ли удаленный SSH-порт 22. В Java это так же просто, как проверить, что следующий оператор не бросает:
new Socket(address, 22).close();
Вы можете пойти еще дальше и прочитать из сокета, чтобы проверить, что вы получите идентификационную строку SSH, такую как "SSH-2.0-OpenSSH_5.3".
Попытка установить соединение с JSch тоже сделала бы. Вам просто нужно убедиться, что вы можете отличить ошибки "не могу подключиться" от любых других ошибок, таких как "невозможно аутентифицировать" (что указывает на то, что SSH существует).