ssh2
简介
ssh client,用于通过ssh协议访问远程服务器
组件接口
ssh2.gs
函数原型 | 函数作用 |
---|---|
array ssh_exec(string hostname, int auth_type, string username, string publicKeyOrPassword, string privateKey, string keyPassword, string commandline, int port, int timeout) | 远程执行命令 |
使用示例
public void test()
{
string cmd = "ls -la";
// 通过密码认证
ssh2.ssh_exec("192.168.0.77", 1, "root", "123456", "", "", cmd, 22, 30000);
// 通过密钥认证
string public_key = """p
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCm9J6Ln8kUygKsg5jd1KOJGDe8fSRZLpI8yrPnHwwY0shdE4NKp2BFrvWJnFVs73jrkvy1DpXNdafDcPk/EMg15CNKb8PgKFsGcaMTlcIGtA/9dMJvn7Ea6/fq3dU7N+Rgq15y1DPJ+SnrnmfyzsGasDG4DYD+Mh/ZkxDvgoJPnLQABaVTnElnejaXTPQZ/fyF2boqVjcfdD+yzKlEvscAIGef0LmEBbS4CJIXmUziSoWEi+lR+IIAeu1PbI01kcJO5Xofje8ncFWIqBWqUMJTQNYgMwH1a6IJwzP4rIszA02H2GOgLCGw/4MCoiaMJo+Dt8Z5RJBukVcd8qb7s0H5 test1"""p;
string private_key = """p
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,31990734C9218C0897B91E5F18C39E92
1yrJtwT+RU4soMfh/ItbOO5nD9miAi9+83BayI5ZMdYFzVimNipUbsevG3TEwiWq
0IgOaDTNx7knXuqYgoeZGjF3YeqC6D0wzN9Qy3uCdZXo/8vR+nd58Et7J2gqWigg
irJIIIQhChF5+DQ9g0xrInm9IVoRGdwsekGDRmauAlCzTlgrh3QM0MBZmZy0pNgb
TUYgYH2xztmP9iJUjg2Bjtf3JYlhtqORlGMJMM8e5Vh3Nq7ZY/UdMkGOUtZgR4kF
6OnA0s15T4SA7eeY05w5lKTW/wP7w5xnHu3IMc6UObg2UTPNWrvVP99QxH2w+OvH
Rtn4yGDSw8dtQZL2vnAAjTJg2uP6046Z7R32Yj+nnDCDzpZ09JvBqVrQ3NygwaOB
ATMXD0HalDwiRVnmooAaN8VC3qGp/KXX7QfHMZnLATC3KWt9zChrR3lSJnw9A9r2
78aD4oEfurE7CKWallOSPTfZIR8HeHmNtmHkj3cm9fvS+FQxMQqKhiSsK+zDMh/W
IU4dbJkrCioWWEemqBEf/kGOiV+RSyp+XgJc11AJPmuZtUkIdjfeSjBXNbBrNJrx
b+hxze5i4WunMP+XKBN/pbdxlqIykfU+qbP4OLGq0bd5yaJqVV2Zi6VRDl8cvLoR
6rNwpol+yhpVefcpWO0kKafE+zS8tvwGeh8j7KxJxU7vYCOyi0IRwhUDz16qJM/V
bv6Gb2gO7OCQK+gWDgvjColhxt7md/8LyUl4fdpzQkPtleOdSyFhiNKuKYWv5apt
UOOnCfcIcvfNK5Iht/mCLo24zxJoWUYLyHEFiG5GR9P1n1Ttw5y/+lSrm+i0RShP
kHd2YMJvATJGPTI+prFbuLd83qzICE6U7YKee1UcuZ5m78C3Smpnj71Rw4vz7lTt
5RWENWYxJeO+qa3x687IhkT048ORxERxePOTzN09wgjk2uZi5rLzjG5Tm7l8hU08
D6Blx4Iwl3JZLnN0Pdt2po1CdQEin5MOfDEXyGpcQl0AJXBhFqmGiqFFwAAFCeSN
fmaoAY56I6LddpiaB1iHY6OBTDzdpj1xjgOt91m3nzMYGjui0PZGhhpVXBqn0S8z
f/wdRnlB6D3DZmz6vvWHQ+N8sD+7xN0Ncne8rAOjWCMKIc7VOoVos4w0ADZb9TsI
kcLdVUI2bx4bdHoiUvvTbsm1SosO0ETfVz0aPlIE9Rbd7aTbrG5p8ehinAxIYlXc
YxDO/7O4KyZ955w1+59DYPA9iPCxw/UsrSBCmRs9+0pO/5qrKnUDcSVxajqciukN
xBOd6DO2+18hpdhVRhRNr4VZNZDl/oVPUHD9l+0CA88/h2h8bpxL4tyIB3YD12RV
Ud0pDdV370Xia76MJKV9ZSk20jNMKGPf95sOpc8eJ95JJhQ0rJB0Ie2sJ4SUHmc+
wS88YJ6eGV7Jg+QBXt9TlPKApe+gUErTX/9z+/xuM75YIFKoRnWgEao1pHmAmfOq
Er065j9lJzN9YfAvH5SaQAGrvGgspe5yehjzHUdAk3Kv/PxPxsd7qr1wSSelocPL
hE++bSXLWRmmXutGz4iKq5/bZNuFMRyyB6Lk1+tuZE/9mckzKiLzOgVmZxKZXqZA
-----END RSA PRIVATE KEY-----"""p;
string key_password = "123456";
array result = ssh2.ssh_exec("192.168.0.77", 2, "root", public_key, private_key, key_password, cmd, 22, 30000);
let string msg, int exit_code, string cmd_result = result;
// msg: 不为空表示命令未能正确执行,包括ssh错误和命令被异常退出;为空表示命令执行完成
// exit_code: 为0表示命令正常退出,否则为退出码
// cmd_result: 命令的输出
// 如:
// 1. 网络不通、认证失败、命令找不到等会返回msg,表示失败原因
// 2. find命令未找到指定的文件时会msg为空,exit_code返回2表示文件未找到
// 3. 文件找到了时msg为空、exit_code为0, cmd_result为文件信息
}