Exemple #1
0
        /// <summary>
        /// 建立SFTP连接
        /// </summary>
        /// <param name="type"></param>
        public void ConnectSFTP(SFTPConnectTypeEnum type = SFTPConnectTypeEnum.Default)
        {
            if (PortIsOpen())
            {
                try
                {
                    switch (type)
                    {
                    case SFTPConnectTypeEnum.Password:
                        ConnectSFTPByPassword();
                        break;

                    case SFTPConnectTypeEnum.PrivateKey:
                        ConnectSFTPByPrivateKey();
                        break;

                    case SFTPConnectTypeEnum.Default:
                        ConnectSFTPByPassword();
                        if (!IsConnected)
                        {
                            ConnectSFTPByPrivateKey();
                        }
                        break;

                    default:
                        break;
                    }
                }
                catch (Exception e)
                {
                    _log.Error("连接SFTP失败!", e);
                }
            }
        }
Exemple #2
0
        /// <summary>
        /// 构造函数
        /// </summary>
        public SFTPServer()
        {
            //初始化日志对象
            _log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

            //从配置文件中加载凭证信息
            var config = ConfigurationManager.GetSection("SftpServer") as NameValueCollection;

            _hostName           = config["HostName"];
            _userName           = config["UserName"];
            _password           = config["Password"];
            _defaultfRemotePath = config["DefaultfRemotePath"] ?? "/";   //默认值为/
            _port           = Convert.ToInt32(config["Port"] ?? "22");   //默认端口为22
            _privateKeyFile = config["PrivateKeyFile"];
            _passphrase     = config["Passphrase"] ?? "";                //默认为空

            if (!Enum.TryParse(config["ConnectWay"], true, out _connectWay))
            {
                _connectWay = SFTPConnectTypeEnum.FirstPasswordThenPrivateKey;
            }
        }