R ssh软件包中的ssh ipv6地址

时间:2018-11-04 06:58:29

标签: r ssh

如何在R ssh软件包中ssh ipv6地址

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(主机,default_port = 22)中的错误:         主机字符串包含多个“:”字符

1 个答案:

答案 0 :(得分:1)

由于您无法安装源代码包,因此一种 super hacky 方法是直接调用C函数ssh_connect()调用:

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

高度的C接口不太可能改变,因此应该是一个相当安全的技巧,直到该软件包最终支持IPv6。

对于那些在rOpenSci人员进行任何更改之前偶然发现此问题的人,fork:https://github.com/hrbrmstr/ssh:还增加了对使用本地SSH配置文件的支持。这意味着您可以为IPv6地址添加Host条目(以及其他任何配置选项),然后将对其进行查找。

即如果有的话:

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

~/.ssh/config中,一个人可以(用叉子)做

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

,并且该条目中的所有替代都应该起作用。