본문 바로가기

프로그래밍/C, C++

Windows Terminal에서 ssh연결 간편하게 하는 프로그램 만들기

원래는 putty를 쓰다가 너무 안예뻐서 만들기로 계획해버렸다.

putty 인터페이스 너무 못생김

 

윈도우에서 SSH 접속을 하기 위해서 OpenSSH 클라이언트를 설치했다.

설정 -> 앱 -> 선택적 기능 -> 기능 추가에서 설치할 수 있다.

 

설치 후 잘 작동하는지 확인

잘 작동한다.

 

#include <stdio.h>
#include <conio.h>
#include <Windows.h>

#pragma warning(disable : 4996)

//list 추가 : list 함수 생성 및 switch문에 추가
int case1()
{
	char inputStr[100];
	char ip[50];
	int port = 0;
	char account[100];

	printf("\ninput ip address : ");
	scanf_s("%s", ip, sizeof(ip));
	printf("input port : ");
	scanf_s("%d", &port);
	printf("input account name : ");
	scanf_s("%s", account, sizeof(account));
	static char cmd_buffer[200];
	sprintf_s(cmd_buffer, "ssh.exe %s@%s -p %d", account, ip, port, sizeof(cmd_buffer));
	system("cls");
	system(cmd_buffer);
	return 0;
}

int list1()
{
	char account[100];
	char ip[50];
	char port[10];

	strcpy(account, "ci");
	strcpy(ip, "117.123.121.12");
	strcpy(port, "8022");

	static char cmd_buffer[200];
	sprintf_s(cmd_buffer, "ssh.exe %s@%s -p %s", account, ip, port, sizeof(cmd_buffer));
	system("cls");
	system(cmd_buffer);

	return 0;
}

int list2()
{
	
	return 0;
}

int case2()
{
	system("C:\\Users\\rlack\\Desktop\\sshConnect\\sshConnect.sln");
	return 0;
}
 
int case3()
{
	int Session_Num = 0;
	printf("\n======Select Session=================\n");
	printf("Pi    :  1\n");
	printf("NULL  :  2\n");
	printf("=======================================\n");

	int key;
	bool isOptionSelected = false;

	while (!isOptionSelected)
	{
		if (_kbhit())
		{
			key = _getch();
			switch (key)
			{
			case 49:
				list1();
				isOptionSelected = true;
				break;
			case 50:
				list2();
				isOptionSelected = true;
				break;
			}

		}
	}

	return 0;
}

int main(void)
{
	printf("\n======Select Option=====\n");
	printf("New Connection   : 1\n");
	printf("Save Session     : 2\n");
	printf("Load Session     : 3\n");
	printf("==========================\n");

	int key;
	bool isOptionSelected = false;

	while (!isOptionSelected)
	{
		if (_kbhit())
		{
			key = _getch();
			switch (key)
			{
			case 49:
				case1();
				isOptionSelected = true;
				break;
			case 50:
				case2();
				isOptionSelected = true;
				break;
			case 51:
				case3();
				isOptionSelected = true;
				break;
			}

		}
	}
	//scanf_s("%s", inputStr,sizeof(inputStr));
	system("pause");
}

source.cpp
0.00MB

리스트를 파일 입출력으로 불러오려다가 시간이 없어서 포기했는데 다시 하기 싫어서 안건드는 중...

 

실행 결과

1번 선택 후 정보 입력

 

연결 완료