一、前言
起初觉得在VMware上面使用Linux很不方便,当时又不知道FinalShell,在摸索下偶然发现可以使用DOS命令连接Linux,于是突发奇想用C语言进行简单的包装一下
二、DOS命令ssh
使用dos命令ssh 用户名@ip 就可以实现远程连接Linux了,前提是这个Linux在公网上或者在本地上才能进行连接,下面是我自己本地虚拟机里面的Linux
//ssh 用户名@ip
ssh root@192.168.88.130
如果ssh建立连接成功那么就会显示以下提示,输入你的用户密码就可以了
三、C语言代码实现
但是这么做的就会很麻烦,每次都需要输入用户和IP,于是使用C语言写一个代码生成一个可执行程序,这样每次想要连接的时候直接双击可执行程序就可以了
以下是源码,默认是root用户,当然你也可以使用两个sprintf拼接函数来实现指定用户登录
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
int main(){
char str[20];
char ip[16],c;
int temp=0;
char a[5],b[5];
strcpy(b,"yes");
while(1){
printf("是否进入系统yes or no\n");//如果输入1
scanf("%s",&a);
//判断用户选择
if((strcmp(b,a))==0){
printf("请输入IP\n");
while(1){
c=_getch();//实时获取键盘输入的值
if(c=='\r')
break;//获取回车直接跳出循环
else{
ip[temp]=c;//输入的IP储存
printf("%c",c);
}
temp++;//IP长度
}
printf("\n%s",ip);
printf("\n服务连接中....\n");
sprintf(str,"ssh root@%s",ip);//将IP和命令连接成一个字符串
if((system(str))==0){
system(str);
}
else{
printf("请重新输入IP\n");
break;
}
}
else{
break;
}
}
return 0;
}
代码运行过程:
*个人认为以上的难点就在于实时获取用户输入的IP并存入数组中