Как проверить, есть ли на удаленной машине SSH

1

Какой был бы лучший способ сделать это:

Я хочу отправить файлы на разные удаленные компьютеры с помощью pscp (с локальной машины Windows) или sshpass (с локальной машины Unix) на случайные удаленные компьютеры.

Сначала я проверяю метод Java, если локальная машина имеет pscp или sshpass.
Затем я хочу проверить, есть ли у удаленной машины SSH.

Каким будет лучший способ сделать последний?

Я думал об использовании JSch для этого, но разве это не требует существования SSH на удаленной машине?

Это хороший способ в целом?

Теги:
ssh
jsch

1 ответ

1

Единственный способ проверить существование SSH удаленно - это фактически попытаться подключиться.

Более технически, чтобы проверить, открыт ли удаленный SSH-порт 22. В Java это так же просто, как проверить, что следующий оператор не бросает:

new Socket(address, 22).close();

Вы можете пойти еще дальше и прочитать из сокета, чтобы проверить, что вы получите идентификационную строку SSH, такую как "SSH-2.0-OpenSSH_5.3".


Попытка установить соединение с JSch тоже сделала бы. Вам просто нужно убедиться, что вы можете отличить ошибки "не могу подключиться" от любых других ошибок, таких как "невозможно аутентифицировать" (что указывает на то, что SSH существует).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню