Соединение SSH с Python 3.0

Как указывалось ранее, пробел в URL может вызвать это, но также возможно, что ваша строка содержит неподдерживаемый символ. Например, если вы копируете и вставляете URL из PDF, Word или другого документа, он может содержать неподдерживаемые символы. На первый взгляд это выглядит хорошо, но не компилятор.

Чтобы исправить это, в вашем методе [NSURL URLWithString:@"http://blabhblabh"] удалите всю строку кода, а не только URL-адрес, и вручную введите ссылку и метод.

8
задан Steven Hepting 4 June 2009 в 22:39
поделиться

3 ответа

Я рекомендую вызывать ssh как подпроцесс. Это надежно и портативно.

import subprocess
proc = subprocess.Popen(['ssh', 'user@host', 'cat > %s' % filename],
                        stdin=subprocess.PIPE)
proc.communicate(file_contents)
if proc.retcode != 0:
    ...

Вам придется беспокоиться о цитировании имени файла назначения. Если вам нужна большая гибкость, вы можете даже сделать это:

import subprocess
import tarfile
import io
tardata = io.BytesIO()
tar = tarfile.open(mode='w:gz', fileobj=tardata)
... put stuff in tar ...
proc = subprocess.Popen(['ssh', 'user@host', 'tar xz'],
                        stdin=subprocess.PIPE)
proc.communicate(tardata.getvalue())
if proc.retcode != 0:
    ...
12
ответ дан 5 December 2019 в 12:12
поделиться

Может потребоваться небольшая работа, потому что " скручено:

0
ответ дан 5 December 2019 в 12:12
поделиться

Вы хотите, чтобы вся функциональность ssh была реализована в виде библиотеки Python? Взгляните на paramiko, хотя я думаю, что он не перенесен на Python 3.0 (пока?).

Если вы можете использовать существующую установку ssh, вы можете использовать подпроцесс , как описано Дитрихом, или (другой способ ) вы также можете использовать pexpect ( веб-сайт здесь ).

1
ответ дан 5 December 2019 в 12:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: