Я хочу подключиться к серверу, предоставленному LogMeIn Hamachi. Если я использую «ssh [email protected]» в командной строке, я получаю к нему доступ. Однако это не работает в python с paramiko.
Если я попытаюсь сделать то же самое на питоне с помощью paramiko:
ssh.connect(hostname='[email protected]', username='', password='mypassword')
затем я получаю следующую ошибку: ошибка getaddrinfo.
Однако, если я посмотрю в Hamachi и скопирую IP-адрес этой конкретной станции в свой скрипт Python:
ssh.connect(hostname='IP ADRESS', username='', password='mypassword')
Я получаю «IP-адрес», не найденный в known_hosts.
Что я могу сделать? У меня есть доступ при использовании обычного CMD из окон.
ssh.connect(hostname='[email protected]', username='', password='mypassword')
кажется неверным — hostname
включает ваше имя пользователя и символ @
.
Это работает?
ssh.connect(hostname='xzh.local', username='xy', password='mypassword')
Ваша вторая проблема, когда вы пытаетесь подключиться по IP, ошибка другая: адрес не в известных хостах. Вы можете обойти это с помощью 2 методов:
Игнорировать проверку хоста:
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
или добавив ключ хоста перед подключением:
client.get_host_keys().add('example.com', 'ssh-rsa', key)
Последнее должно быть вашим предпочтительным выбором - отключение функций безопасности ssh (s означает безопасный!) Обычно не подходит. Если вы уже подключились к xzh.local через ssh, ключ этого хоста уже должен быть в вашем файле known_hosts.