天天看點

關于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");

可連續執行。