如何在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)中的错误: 主机字符串包含多个“:”字符
答案 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")
,并且该条目中的所有替代都应该起作用。