use ggg
This commit is contained in:
parent
93f487e4ed
commit
61366a07b6
94
test
94
test
@ -1,94 +0,0 @@
|
||||
test
|
||||
#include <libssh/libssh.h>
|
||||
#include <stdio.h>
|
||||
|
||||
int main() {
|
||||
// 定义目标服务器的信息
|
||||
const char *hostname = "your_server_hostname";
|
||||
const char *username = "your_username";
|
||||
const char *password = "your_password";
|
||||
|
||||
// 初始化SSH会话
|
||||
ssh_session session = ssh_new();
|
||||
if (session == NULL) {
|
||||
fprintf(stderr, "Error creating SSH session\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
// 设置SSH连接参数
|
||||
ssh_options_set(session, SSH_OPTIONS_HOST, hostname);
|
||||
ssh_options_set(session, SSH_OPTIONS_USER, username);
|
||||
|
||||
// 连接到SSH服务器
|
||||
int rc = ssh_connect(session);
|
||||
if (rc != SSH_OK) {
|
||||
fprintf(stderr, "Error connecting to SSH server: %s\n", ssh_get_error(session));
|
||||
ssh_free(session);
|
||||
return 1;
|
||||
}
|
||||
|
||||
// 使用密码进行身份验证
|
||||
rc = ssh_userauth_password(session, NULL, password);
|
||||
if (rc != SSH_AUTH_SUCCESS) {
|
||||
fprintf(stderr, "Error authenticating with password: %s\n", ssh_get_error(session));
|
||||
ssh_disconnect(session);
|
||||
ssh_free(session);
|
||||
return 1;
|
||||
}
|
||||
|
||||
// 打开通道
|
||||
ssh_channel channel = ssh_channel_new(session);
|
||||
if (channel == NULL) {
|
||||
fprintf(stderr, "Error creating channel: %s\n", ssh_get_error(session));
|
||||
ssh_disconnect(session);
|
||||
ssh_free(session);
|
||||
return 1;
|
||||
}
|
||||
|
||||
// 打开会话
|
||||
rc = ssh_channel_open_session(channel);
|
||||
if (rc != SSH_OK) {
|
||||
fprintf(stderr, "Error opening channel session: %s\n", ssh_get_error(session));
|
||||
ssh_channel_free(channel);
|
||||
ssh_disconnect(session);
|
||||
ssh_free(session);
|
||||
return 1;
|
||||
}
|
||||
|
||||
// 执行交互性命令
|
||||
rc = ssh_channel_request_pty(channel);
|
||||
if (rc != SSH_OK) {
|
||||
fprintf(stderr, "Error requesting pty: %s\n", ssh_get_error(session));
|
||||
ssh_channel_free(channel);
|
||||
ssh_disconnect(session);
|
||||
ssh_free(session);
|
||||
return 1;
|
||||
}
|
||||
|
||||
// 打开 shell
|
||||
rc = ssh_channel_shell(channel);
|
||||
if (rc != SSH_OK) {
|
||||
fprintf(stderr, "Error opening shell: %s\n", ssh_get_error(session));
|
||||
ssh_channel_free(channel);
|
||||
ssh_disconnect(session);
|
||||
ssh_free(session);
|
||||
return 1;
|
||||
}
|
||||
|
||||
// 从键盘获取输入并发送到 SSH 服务器
|
||||
char buffer[256];
|
||||
while (fgets(buffer, sizeof(buffer), stdin) != NULL) {
|
||||
ssh_channel_write(channel, buffer, strlen(buffer));
|
||||
}
|
||||
|
||||
// 关闭 shell 通道
|
||||
ssh_channel_send_eof(channel);
|
||||
ssh_channel_close(channel);
|
||||
|
||||
// 释放资源
|
||||
ssh_channel_free(channel);
|
||||
ssh_disconnect(session);
|
||||
ssh_free(session);
|
||||
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue
Block a user