summaryrefslogtreecommitdiff
path: root/src/pkg/exp/ssh/doc.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/pkg/exp/ssh/doc.go')
-rw-r--r--src/pkg/exp/ssh/doc.go79
1 files changed, 0 insertions, 79 deletions
diff --git a/src/pkg/exp/ssh/doc.go b/src/pkg/exp/ssh/doc.go
deleted file mode 100644
index 54a7ba9fd..000000000
--- a/src/pkg/exp/ssh/doc.go
+++ /dev/null
@@ -1,79 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-/*
-Package ssh implements an SSH server.
-
-SSH is a transport security protocol, an authentication protocol and a
-family of application protocols. The most typical application level
-protocol is a remote shell and this is specifically implemented. However,
-the multiplexed nature of SSH is exposed to users that wish to support
-others.
-
-An SSH server is represented by a Server, which manages a number of
-ServerConnections and handles authentication.
-
- var s Server
- s.PubKeyCallback = pubKeyAuth
- s.PasswordCallback = passwordAuth
-
- pemBytes, err := ioutil.ReadFile("id_rsa")
- if err != nil {
- panic("Failed to load private key")
- }
- err = s.SetRSAPrivateKey(pemBytes)
- if err != nil {
- panic("Failed to parse private key")
- }
-
-Once a Server has been set up, connections can be attached.
-
- var sConn ServerConnection
- sConn.Server = &s
- err = sConn.Handshake(conn)
- if err != nil {
- panic("failed to handshake")
- }
-
-An SSH connection multiplexes several channels, which must be accepted themselves:
-
-
- for {
- channel, err := sConn.Accept()
- if err != nil {
- panic("error from Accept")
- }
-
- ...
- }
-
-Accept reads from the connection, demultiplexes packets to their corresponding
-channels and returns when a new channel request is seen. Some goroutine must
-always be calling Accept; otherwise no messages will be forwarded to the
-channels.
-
-Channels have a type, depending on the application level protocol intended. In
-the case of a shell, the type is "session" and ServerShell may be used to
-present a simple terminal interface.
-
- if channel.ChannelType() != "session" {
- c.Reject(UnknownChannelType, "unknown channel type")
- return
- }
- channel.Accept()
-
- shell := NewServerShell(channel, "> ")
- go func() {
- defer channel.Close()
- for {
- line, err := shell.ReadLine()
- if err != nil {
- break
- }
- println(line)
- }
- return
- }()
-*/
-package ssh