SSH IPv6 адрес в пакете R SSH - PullRequest
       1

SSH IPv6 адрес в пакете R SSH

0 голосов
/ 04 ноября 2018

Как мне ssh ipv6 адрес в пакете R ssh

library(ssh)

# works
session <- ssh_connect("user@10.1.1.0")

# gives error
session <- ssh_connect("user@24:022f:0313:112:0::2")

Ошибка в parse_host (host, default_port = 22): Строка хоста содержит несколько символов ':'

1 Ответ

0 голосов
/ 04 ноября 2018

Поскольку вы не можете установить пакеты с исходным кодом, один супер хакерский способ сделать это - вызвать функцию C ssh_connect() напрямую:

.Call(
  ssh:::C_start_session, "2405:0200:0313:112:41::42", 22, "user", NULL, ssh:::askpass, FALSE
)

Этот интерфейс C весьма вряд ли изменится, поэтому должен быть довольно безопасным взломом, пока пакет в конечном итоге не будет поддерживать IPv6.

Для тех, кто наткнулся на это до того, как люди rOpenSci внесут какие-либо изменения, форк: https://github.com/hrbrmstr/ssh: также добавляет поддержку использования локального файла конфигурации SSH. Это означает, что вы можете добавить запись Host для адресов IPv6 (вместе с любыми другими параметрами конфигурации), и они будут найдены.

т.е. если есть:

Host awickedcoolhost
  User boringusername
  Hostname ::1
  IdentityFile ~/.ssh/id_rsa
  Port 22222

в ~/.ssh/config, можно (с вилкой) сделать:

ssh_connect("awickedcoolhost", config="~/.ssh/config") 

и все переопределения в этой записи должны работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...