当我尝试使用ssh和R的system()
命令将计算机A连接到计算机B时,出现错误:
system('ssh root@Bs-ip-address')
ssh_askpass: exec(rpostback-askpass): No such file or directory
Host key verification failed.
lost connection
但是如果我在引号中输入命令到我的Linux终端(ssh root@Bs-ip-address
),它可以正常工作(为正确的用户设置了ssh密钥)。如何使用R的system()
命令正确连接?或者你能建议一种更好的连接方式吗?
这可能与需要在Linux中出现的以下提示输入“yes”有关:
The authenticity of host Bs-ip-address (Bs-ip-address) cant be established.
ECDSA key fingerprint is unique-fingerprint.
Are you sure you want to continue connecting (yes/no)?
在putty会话中输入“yes”后,上面的R system()
命令将起作用。但我不想每次都要进入腻子。 (作为旁注,我正在使用预先设置的ssh密钥创建许多相同的Digital Ocean实例,并尝试从R连接到它们,因此每次为每个新实例输入putty会话都不是一个可行的选项。你能使用system()
发送'是'命令吗?
答案 0 :(得分:2)
你可以自动接受(警告:你必须确定你将要访问的机器是可信的!)。
例如,如果主机具有rsa密钥,则可以执行以下操作:
system( 'ssh-keyscan -t rsa Bs-ip-address >> ~/.ssh/known_hosts' )
HIH。