public void Connect() { InitVAHInfo(); try { JSch jsch = new JSch(); _ssn = jsch.getSession(_usr, _hip, _hp); System.Collections.Hashtable hashConfig = new Hashtable(); hashConfig.Add("StrictHostKeyChecking", "No"); _ssn.setConfig(hashConfig); jsch.addIdentity(_ppk); _ssn.connect(); if (_ssn.isConnected()) { Console.WriteLine("Log Successfully."); } else { Console.WriteLine("Log failed."); } } catch (Tamir.SharpSsh.jsch.JSchException jschex) { Console.WriteLine(jschex.Message); } catch (Exception anyex) { Console.WriteLine(anyex.Message); } }
public SshHelper(string Host, string UserName, string Password) { host = Host; var jsch = new JSch(); session = jsch.getSession(UserName, host, 22); session.setPassword(Password); var config = new Hashtable { { "StrictHostKeyChecking", "no" } }; session.setConfig(config); session.connect(); channel = (ChannelShell)session.openChannel("shell"); writer_po = new PipedOutputStream(); var writer_pi = new PipedInputStream(writer_po); var reader_pi = new PipedInputStream(); var reader_po = new PipedOutputStream(reader_pi); reader = new StreamReader(reader_pi, Encoding.UTF8); channel.setInputStream(writer_pi); channel.setOutputStream(reader_po); channel.connect(); channel.setPtySize(132, 132, 1024, 768); }
/// <summary> /// Constructs a new SSH stream. /// </summary> /// <param name="host">The hostname or IP address of the remote SSH machine</param> /// <param name="username">The name of the user connecting to the remote machine</param> /// <param name="password">The password of the user connecting to the remote machine</param> public SshStream(string host, string username, string password) { this.m_host = host; JSch jsch=new JSch(); m_session=jsch.getSession(username, host, 22); m_session.setPassword( password ); Hashtable config=new Hashtable(); config.Add("StrictHostKeyChecking", "no"); m_session.setConfig(config); m_session.connect(); m_channel=(ChannelShell)m_session.openChannel("shell"); m_in = m_channel.getInputStream(); m_out = m_channel.getOutputStream(); m_channel.connect(); m_channel.setPtySize(80, 132, 1024, 768); Prompt = "\n"; m_escapeCharPattern = "\\[[0-9;?]*[^0-9;]"; }
protected virtual void ConnectSession(int tcpPort) { m_session = m_jsch.getSession(m_user, m_host, tcpPort); if (Password != null) m_session.setUserInfo(new KeyboardInteractiveUserInfo(Password)); Hashtable config = new Hashtable(); config.Add("StrictHostKeyChecking", "no"); m_session.setConfig(config); m_session.connect(); }
internal bool SSHConnect() { try { channels_ = new Dictionary<int, ChannelSftp>(); jsch_ = new JSch(); Hashtable config = new Hashtable(); config["StrictHostKeyChecking"] = "no"; if (identity_ != null) jsch_.addIdentity(identity_, passphrase_); session_ = jsch_.getSession(user_, host_, port_); session_.setConfig(config); session_.setUserInfo(new DokanUserInfo(password_, passphrase_)); session_.setPassword(password_); session_.connect(); return true; } catch (Exception e) { Debug(e.ToString()); return false; } }
/// <summary> /// Initiates a new SCP response on sourceforge.net for downloading a file. /// </summary> /// <param name="uri">URI to download (includes username and password)</param> /// <param name="timeout">Timeout for this session</param> public ScpWebResponse(Uri uri, int timeout) { JSch jsch = new JSch(); string[] userPass = uri.UserInfo.Split(':'); if (userPass.Length != 2) { throw new WebException("Username and password information for sourceforge.net incomplete"); } session = jsch.getSession(userPass[0], "frs.sourceforge.net", 22); // username and password will be given via UserInfo interface. //UserInfo ui = new UserInfo(); //session.setUserInfo(ui); session.setPassword(userPass[1]); Hashtable hastable = new Hashtable(); hastable.put("StrictHostKeyChecking", "no"); session.setConfig(hastable); if (DbManager.Proxy != null) { session.setProxy(new ProxyHTTP(DbManager.Proxy.Address.Host, DbManager.Proxy.Address.Port)); } try { session.connect(timeout); } catch (JSchException e) { if (e.Message == "Auth fail") { throw new WebException("Invalid username or password for sourceforge"); } throw; } // exec 'scp -f rfile' remotely string sfPath = GetSourceforgePath(uri.LocalPath); // Determine file modified date ChannelSftp channelSftp = (ChannelSftp)session.openChannel("sftp"); channelSftp.connect(); try { SftpATTRS attrs = channelSftp.lstat(sfPath); this.lastModified = RpcApplication.UnixToDotNet(attrs.getMTime()); } catch (SftpException) { throw new WebException("The file \"" + sfPath + "\" could not be found."); } finally { channelSftp.disconnect(); } String command = "scp -f " + sfPath.Replace(" ", "\\ "); Channel channel = session.openChannel("exec"); ((ChannelExec)channel).setCommand(command); // get I/O streams for remote scp Stream outs = channel.getOutputStream(); Stream ins = channel.getInputStream(); channel.connect(); byte[] buf = new byte[1024]; // send '\0' buf[0] = 0; outs.Write(buf, 0, 1); outs.Flush(); int c = checkAck(ins); if (c != 'C') { return; } // read '0644 ' ins.Read(buf, 0, 5); while (true) { ins.Read(buf, 0, 1); if (buf[0] == ' ') break; this.contentLength = this.contentLength * 10 + (buf[0] - '0'); } String file = null; for (int i = 0; ; i++) { ins.Read(buf, i, 1); if (buf[i] == (byte)0x0a) { file = Util.getString(buf, 0, i); break; } } this.responseUri = new Uri("scp://" + session.getHost() + sfPath); // send '\0' buf[0] = 0; outs.Write(buf, 0, 1); outs.Flush(); this.responseStream = ins; }
protected virtual void ConnectSession(int tcpPort) { m_session = m_jsch.getSession(m_user, m_host, tcpPort); if (Password != null) { if (m_userInfo == null) m_userInfo = new DisconnectedKeyboardInteractiveUserInfo(Password); else throw new InvalidDataException("Cannot combine a predefined 'UserInfo' object with a predefined 'Password' value."); } m_session.setUserInfo(m_userInfo); //determine how strict to be on host key issues. Hashtable config = new Hashtable(); switch (m_checkType) { case HostKeyCheckType.AskUser: config.Add("StrictHostKeyChecking", "ask"); break; case HostKeyCheckType.ForceMatch: config.Add("StrictHostKeyChecking", "yes"); break; case HostKeyCheckType.NoCheck: config.Add("StrictHostKeyChecking", "no"); break; default: throw new InvalidDataException("Unknown value provided for 'm_checkType' property"); } m_session.setConfig(config); if (m_hostKeyFileName != null) m_jsch.getHostKeyRepository().setKnownHosts(m_hostKeyFileName); m_session.connect(); }