Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在windows下自动执行SSH登录_C#_Python_Windows_Ssh - Fatal编程技术网

C# 在windows下自动执行SSH登录

C# 在windows下自动执行SSH登录,c#,python,windows,ssh,C#,Python,Windows,Ssh,我希望能够使用一些自定义参数执行openssh,然后能够自动登录到服务器。我希望我的脚本在需要时输入密码,并在提示我将指纹添加到已知主机时输入“是” 我已经找到了用于C#的SharpSsh,它可以做到这一点,但是我还需要使用-D参数和我在SSH中定义的ProxyCommand,而库对于这种用法非常缺乏 我发现的另一件事是Python的pexcept,它应该可以做到这一点,但我找不到下载它的位置,在官方页面上,我被从sourceforge重定向到某个断开的链接 任何帮助都将不胜感激 比尔。我希望P

我希望能够使用一些自定义参数执行openssh,然后能够自动登录到服务器。我希望我的脚本在需要时输入密码,并在提示我将指纹添加到已知主机时输入“是”

我已经找到了用于C#的SharpSsh,它可以做到这一点,但是我还需要使用-D参数和我在SSH中定义的ProxyCommand,而库对于这种用法非常缺乏

我发现的另一件事是Python的pexcept,它应该可以做到这一点,但我找不到下载它的位置,在官方页面上,我被从sourceforge重定向到某个断开的链接

任何帮助都将不胜感激

比尔。

我希望Perl模块能对您有所帮助。

我希望Perl模块能对您有所帮助。

如果您使用然后有一个脚本以清晰的方式注入密码(意思是,您未加密地存储了密码),那么这就违背了secure shell的目的

请仔细考虑使用它,可以轻松安全地进行自动化。

< P>如果您使用并有一个脚本来注销清除密码(意思是,您已经存储了未加密的密码),它将破坏安全外壳的目的。

请慎重考虑使用它,可以轻松安全地进行自动化。

< P>我使用pQuy为类似目的,也下载工作?

这里是我的ssh自动化脚本的一部分,您可以为自己的使用定制它 它可能不会用完盒子

import os
import getpass
import pexpect
import glob
import logging
import shutil
import time

class UpdateError(Exception): pass

g_password = None

def runSshCommand(cmd):
    global g_password

    ssh_newkey = 'Are you sure you want to continue connecting'
    # my ssh command line
    p=pexpect.spawn(cmd)

    i=p.expect([ssh_newkey,'password:',pexpect.EOF])
    if i==0:
        print "Saying yes to connection.."
        p.sendline('yes')
        i=p.expect([ssh_newkey,'password:',pexpect.EOF])

    if i==1:
        while True:
            if g_password is None:
                g_password = getpass.getpass("password:")
            p.sendline(g_password)
            i = p.expect(['password:',pexpect.EOF])
            if i==0:
                g_password = None
                print "Wrong password"
            else:
                break
    elif i==2:
        raise UpdateError("Got key or connection timeout")

    return p.before

我使用pexpect做类似的用途,下载也可以吗?

这里是我的ssh自动化脚本的一部分,您可以为自己的使用定制它 它可能不会用完盒子

import os
import getpass
import pexpect
import glob
import logging
import shutil
import time

class UpdateError(Exception): pass

g_password = None

def runSshCommand(cmd):
    global g_password

    ssh_newkey = 'Are you sure you want to continue connecting'
    # my ssh command line
    p=pexpect.spawn(cmd)

    i=p.expect([ssh_newkey,'password:',pexpect.EOF])
    if i==0:
        print "Saying yes to connection.."
        p.sendline('yes')
        i=p.expect([ssh_newkey,'password:',pexpect.EOF])

    if i==1:
        while True:
            if g_password is None:
                g_password = getpass.getpass("password:")
            p.sendline(g_password)
            i = p.expect(['password:',pexpect.EOF])
            if i==0:
                g_password = None
                print "Wrong password"
            else:
                break
    elif i==2:
        raise UpdateError("Got key or connection timeout")

    return p.before

我将支持使用公钥身份验证的建议。而不是用WEB进行黑客攻击,您可能需要考虑,它是Python的本地SSH客户端,它将极大地简化通信过程,特别是如果您需要与远程服务器进行交互,并且它对SFTP内置的东西有支持。

< P>我将推荐使用公钥认证。您可以考虑使用Python的本地SSH客户端,这将大大简化通信过程,尤其是如果您需要与远程服务器进行交互,并且它对SFTP内置的东西有支持。

< P>有一些使用生成的SSH密钥验证。这是实现目标的一种简单而安全的方法。对于windows SSH应用程序,它有一组很棒的功能。当您认为可以的时候,甚至更好。

使用生成的SSH密钥验证有一些。这是实现目标的一种简单而安全的方法。对于windows SSH应用程序,它有一组很棒的功能。更好的是,当你认为你可以的时候。

<代码> pWee> <代码>不能在Windows上导入。因此,我使用带有Python子进程的

plink.exe
连接到ssh服务器。

pexpect
无法在Windows上导入。因此,我使用带有Python子进程的
plink.exe
连接到ssh服务器。

另一种方法是使用openssh并建立可信密钥;如果客户端和服务器上的用户帐户都具有此密钥,则openssh不会请求密码

我有一个脚本可以自动设置它-它在cygwin下工作


另一种方法是使用openssh并建立可信密钥;如果客户端和服务器上的用户帐户都具有此密钥,则openssh不会请求密码

我有一个脚本可以自动设置它-它在cygwin下工作


我也打算推荐帕拉米科,但克里斯抢先一步。可惜它没有内置scp。诺亚:如果可能的话,你想使用SFTP,因为scp“协议”是临时的。SFTP客户端的互操作往往更加一致——如果您在任何地方都使用OpenSSH,这不是问题,但我在商业SSH服务器上遇到了各种问题。我也打算建议使用Paramiko,但Chris比我先提出。太糟糕了,它没有内置scp。Noah:如果可能的话,您想使用SFTP作为scp“协议”这是临时的。SFTP客户端倾向于更加一致地进行互操作—如果您在任何地方都使用OpenSSH,这并不是一个问题,但我在使用商业SSH服务器时遇到了各种问题