天天看点

关于SSH远程登录和远程连续执行代码的一些问题

1.SSH远程登录主机命令

ssh 主机名@远程主机IP

例:ssh [email protected]

然后按照提示输入远程主机密码即可登录。

2.SSH免输入密码登录远程主机

步骤一:在本机上生成公钥/密钥对

命令:ssh-keygen -t rsa -p

步骤二:把本机的id_rsa.pub文件拷贝到远程主机

命令:scp -r 目录/id_rsa.pub 远程主机IP:/目录/authorized_keys

例:scp -r /root/.ssh/id_rsa.pub 10.1.1.175:/root/.ssh/authorized_keys

3.关于system()语句参数特殊符号的问题

在system()语句中使用@标识符的话,系统不识别,会把它当成是数组的符号@array,故要加转义字符"/"。

例:原本希望系统执行的命令是"ssh [email protected]"

写在system()里面就要写成system("ssh root/@192.168.41.168"),才能成功执行该语句。

4.关于远程登录某主机并执行代码的问题

比如原来的程序片段如下:

system("ssh root/@192.168.41.168");

system("perl example.pl");

在远程主机上执行完第一句是不会执行第二句的。

后来改成下面这样,成功执行:

system("ssh root/@192.168.41.168 perl example.pl");

可连续执行。