net-ssh 1.0.0 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/doc/manual-html/chapter-1.html +388 -0
- data/doc/manual-html/chapter-2.html +544 -0
- data/doc/manual-html/chapter-3.html +470 -0
- data/doc/manual-html/chapter-4.html +413 -0
- data/doc/manual-html/chapter-5.html +525 -0
- data/doc/manual-html/chapter-6.html +456 -0
- data/doc/manual-html/chapter-7.html +343 -0
- data/doc/manual-html/index.html +237 -0
- data/doc/manual-html/stylesheets/manual.css +270 -0
- data/doc/manual-html/stylesheets/ruby.css +17 -0
- data/doc/manual/manual.rb +2 -2
- data/doc/manual/manual.yml +41 -44
- data/doc/manual/parts/{intro_what_is.txt → 0000.txt} +0 -0
- data/doc/manual/parts/{intro_what_is_not.txt → 0001.txt} +0 -0
- data/doc/manual/parts/{intro_getting.txt → 0002.txt} +7 -6
- data/doc/manual/parts/{intro_license.txt → 0003.txt} +0 -0
- data/doc/manual/parts/{intro_support.txt → 0004.txt} +0 -0
- data/doc/manual/parts/{intro_author.txt → 0005.txt} +1 -1
- data/doc/manual/parts/{session_start.txt → 0006.txt} +11 -11
- data/doc/manual/parts/{session_key.txt → 0007.txt} +6 -6
- data/doc/manual/parts/{session_options.txt → 0008.txt} +2 -3
- data/doc/manual/parts/0009.txt +14 -0
- data/doc/manual/parts/{channels_what_are.txt → 0010.txt} +0 -0
- data/doc/manual/parts/{channels_loop.txt → 0011.txt} +2 -2
- data/doc/manual/parts/{channels_types.txt → 0012.txt} +0 -0
- data/doc/manual/parts/{channels_open.txt → 0013.txt} +2 -2
- data/doc/manual/parts/{channels_callbacks.txt → 0014.txt} +3 -3
- data/doc/manual/parts/{channels_operations.txt → 0015.txt} +1 -2
- data/doc/manual/parts/{exec_channels.txt → 0016.txt} +2 -2
- data/doc/manual/parts/{exec_open.txt → 0017.txt} +3 -3
- data/doc/manual/parts/{exec_popen3.txt → 0018.txt} +5 -5
- data/doc/manual/parts/{shells_intro.txt → 0019.txt} +0 -0
- data/doc/manual/parts/{shells_channels.txt → 0020.txt} +5 -5
- data/doc/manual/parts/{shells_shell.txt → 0021.txt} +6 -6
- data/doc/manual/parts/{shells_sync.txt → 0022.txt} +4 -4
- data/doc/manual/parts/{shells_clients.txt → 0023.txt} +3 -3
- data/doc/manual/parts/{forward_intro.txt → 0024.txt} +2 -2
- data/doc/manual/parts/{forward_local.txt → 0025.txt} +4 -4
- data/doc/manual/parts/{forward_remote.txt → 0026.txt} +6 -5
- data/doc/manual/parts/{forward_direct.txt → 0027.txt} +2 -2
- data/doc/manual/parts/{forward_handlers.txt → 0028.txt} +0 -0
- data/doc/manual/parts/{proxy_intro.txt → 0029.txt} +0 -0
- data/doc/manual/parts/{proxy_http.txt → 0030.txt} +6 -6
- data/doc/manual/parts/{proxy_socks.txt → 0031.txt} +4 -2
- data/doc/manual/stylesheets/manual.css +7 -2
- data/lib/net/ssh/connection/driver.rb +6 -0
- data/lib/net/ssh/transport/session.rb +6 -2
- data/lib/net/ssh/userauth/services.rb +1 -1
- data/lib/net/ssh/version.rb +1 -1
- data/test/transport/tc_session.rb +13 -0
- metadata +161 -149
- data/doc/manual/parts/session_session.txt +0 -14
@@ -0,0 +1,270 @@
|
|
1
|
+
body {
|
2
|
+
background: #FFF;
|
3
|
+
font-family: sans-serif;
|
4
|
+
color: #000;
|
5
|
+
margin: 0px;
|
6
|
+
}
|
7
|
+
|
8
|
+
a {
|
9
|
+
color: #00F;
|
10
|
+
text-decoration: none;
|
11
|
+
}
|
12
|
+
|
13
|
+
a:hover {
|
14
|
+
text-decoration: underline;
|
15
|
+
}
|
16
|
+
|
17
|
+
.product-manual {
|
18
|
+
text-align: center;
|
19
|
+
font-size: x-large;
|
20
|
+
font-variant: small-caps;
|
21
|
+
font-weight: bold;
|
22
|
+
color: #005;
|
23
|
+
}
|
24
|
+
|
25
|
+
.copyright {
|
26
|
+
text-align: center;
|
27
|
+
font-size: small;
|
28
|
+
font-style: italic;
|
29
|
+
color: #005;
|
30
|
+
margin-top: 1in;
|
31
|
+
}
|
32
|
+
|
33
|
+
#banner {
|
34
|
+
background: #005;
|
35
|
+
color: #FFF;
|
36
|
+
border-bottom: 1px solid #000;
|
37
|
+
padding-top: 0.5em;
|
38
|
+
padding-bottom: 0.5em;
|
39
|
+
padding-left: 1em;
|
40
|
+
margin-bottom: 1em;
|
41
|
+
}
|
42
|
+
|
43
|
+
#banner .title {
|
44
|
+
font-size: x-large;
|
45
|
+
}
|
46
|
+
|
47
|
+
#banner .title:first-letter {
|
48
|
+
font-size: 250%;
|
49
|
+
font-weight: normal;
|
50
|
+
float: left;
|
51
|
+
margin-top: -7px;
|
52
|
+
margin-bottom: -7px;
|
53
|
+
}
|
54
|
+
|
55
|
+
#banner .product {
|
56
|
+
font-weight: bold;
|
57
|
+
color: #FF7;
|
58
|
+
letter-spacing: 0.5em;
|
59
|
+
}
|
60
|
+
|
61
|
+
#banner .tagline {
|
62
|
+
font-style: italic;
|
63
|
+
font-size: large;
|
64
|
+
letter-spacing: 0.1em;
|
65
|
+
color: #FFF;
|
66
|
+
}
|
67
|
+
|
68
|
+
#banner .info {
|
69
|
+
color: white;
|
70
|
+
font-size: small;
|
71
|
+
padding-right: 1em;
|
72
|
+
}
|
73
|
+
|
74
|
+
#content {
|
75
|
+
margin-left: 0cm;
|
76
|
+
margin-right: 1cm;
|
77
|
+
}
|
78
|
+
|
79
|
+
#navigation {
|
80
|
+
font-size: x-small;
|
81
|
+
border-right: 2px groove black;
|
82
|
+
border-top: 2px groove black;
|
83
|
+
margin-right: 1em;
|
84
|
+
width: 200px;
|
85
|
+
height: 100%;
|
86
|
+
background: #FFD;
|
87
|
+
}
|
88
|
+
|
89
|
+
#navigation ul, #navigation ol {
|
90
|
+
margin-left: 1.2em;
|
91
|
+
padding-left: 1.2em;
|
92
|
+
}
|
93
|
+
|
94
|
+
#navigation .license {
|
95
|
+
font-size: x-small;
|
96
|
+
text-align: center;
|
97
|
+
border-top: 1px dashed #005;
|
98
|
+
margin-top: 2em;
|
99
|
+
padding: 1em;
|
100
|
+
}
|
101
|
+
|
102
|
+
.section {
|
103
|
+
margin-bottom: 1em;
|
104
|
+
}
|
105
|
+
|
106
|
+
.section p {
|
107
|
+
text-align: justify;
|
108
|
+
}
|
109
|
+
|
110
|
+
#content h1 {
|
111
|
+
background: #005;
|
112
|
+
color: #FFF;
|
113
|
+
font-size: x-large;
|
114
|
+
font-weight: bold;
|
115
|
+
font-variant: small-caps;
|
116
|
+
padding: 0.5em;
|
117
|
+
border: 1px solid #000;
|
118
|
+
margin-top: 0px;
|
119
|
+
margin-bottom: 1em;
|
120
|
+
}
|
121
|
+
|
122
|
+
#content h2 {
|
123
|
+
background: #005;
|
124
|
+
color: #FFF;
|
125
|
+
font-size: large;
|
126
|
+
font-weight: bold;
|
127
|
+
font-variant: small-caps;
|
128
|
+
padding: 0.25em;
|
129
|
+
padding-left: 0.5em;
|
130
|
+
border: 1px solid #000;
|
131
|
+
margin-bottom: 1em;
|
132
|
+
}
|
133
|
+
|
134
|
+
#content h3 {
|
135
|
+
background: #FFD;
|
136
|
+
color: #000;
|
137
|
+
font-size: normal;
|
138
|
+
font-weight: bold;
|
139
|
+
font-variant: small-caps;
|
140
|
+
padding: 0.25em;
|
141
|
+
padding-left: 0.5em;
|
142
|
+
border: 1px dotted #000;
|
143
|
+
margin-bottom: 1em;
|
144
|
+
}
|
145
|
+
|
146
|
+
#content h4 {
|
147
|
+
background: #FFE;
|
148
|
+
color: #000;
|
149
|
+
font-size: normal;
|
150
|
+
font-weight: bold;
|
151
|
+
font-variant: small-caps;
|
152
|
+
padding: 0.25em;
|
153
|
+
padding-left: 0.5em;
|
154
|
+
border: 1px dotted #777;
|
155
|
+
margin-bottom: 1em;
|
156
|
+
}
|
157
|
+
|
158
|
+
#navigation h1 {
|
159
|
+
margin: 0px;
|
160
|
+
padding: 1em;
|
161
|
+
color: #005;
|
162
|
+
background: transparent;
|
163
|
+
font-weight: bold;
|
164
|
+
font-size: 150%;
|
165
|
+
font-variant: small-caps;
|
166
|
+
text-align: center;
|
167
|
+
}
|
168
|
+
|
169
|
+
#navigation h2 {
|
170
|
+
margin: 0px;
|
171
|
+
margin-bottom: 1em;
|
172
|
+
padding: 0.5em;
|
173
|
+
border-top: 1px dashed #005;
|
174
|
+
border-bottom: 1px dashed #005;
|
175
|
+
color: #005;
|
176
|
+
background: transparent;
|
177
|
+
font-weight: bold;
|
178
|
+
font-size: 125%;
|
179
|
+
font-variant: small-caps;
|
180
|
+
text-align: center;
|
181
|
+
}
|
182
|
+
|
183
|
+
table.list {
|
184
|
+
margin: 2em;
|
185
|
+
border: 1px solid black;
|
186
|
+
background: #FFD;
|
187
|
+
padding: 0px;
|
188
|
+
border-spacing: 0px;
|
189
|
+
}
|
190
|
+
|
191
|
+
table.list th {
|
192
|
+
border-bottom: 1px solid #005;
|
193
|
+
padding-bottom: 5px;
|
194
|
+
background: #008;
|
195
|
+
color: white;
|
196
|
+
padding: 0.5em;
|
197
|
+
text-align: left;
|
198
|
+
}
|
199
|
+
|
200
|
+
table.list td {
|
201
|
+
padding: 0.2em;
|
202
|
+
text-align: left;
|
203
|
+
vertical-align: top;
|
204
|
+
border-bottom: 1px solid;
|
205
|
+
}
|
206
|
+
|
207
|
+
.prevnext {
|
208
|
+
padding: 0.5em 1em 0.5em 1em;
|
209
|
+
background: #557;
|
210
|
+
color: #FFF;
|
211
|
+
font-size: small;
|
212
|
+
font-weight: bold;
|
213
|
+
border: 1px solid #000;
|
214
|
+
}
|
215
|
+
|
216
|
+
.prevnext a {
|
217
|
+
color: #FF0;
|
218
|
+
}
|
219
|
+
|
220
|
+
.top .prevnext {
|
221
|
+
margin: 0 0 1em 0;
|
222
|
+
text-align: left;
|
223
|
+
}
|
224
|
+
|
225
|
+
.bottom .prevnext {
|
226
|
+
margin: 1em 0 0 0;
|
227
|
+
text-align: right;
|
228
|
+
}
|
229
|
+
|
230
|
+
.figure {
|
231
|
+
border: 1px solid black;
|
232
|
+
line-height: normal;
|
233
|
+
background: #FFD;
|
234
|
+
margin: 2em;
|
235
|
+
}
|
236
|
+
|
237
|
+
.figure .caption {
|
238
|
+
background: #008;
|
239
|
+
color: white;
|
240
|
+
font-weight: bold;
|
241
|
+
font-size: small;
|
242
|
+
padding: 4px 24px 4px 8px;
|
243
|
+
margin-left: -4px;
|
244
|
+
border: 1px dotted #77F;
|
245
|
+
}
|
246
|
+
|
247
|
+
.figure table {
|
248
|
+
padding-top: 0.8em;
|
249
|
+
padding-bottom: 0.5em;
|
250
|
+
}
|
251
|
+
|
252
|
+
.figure .body {
|
253
|
+
padding-left: 1em;
|
254
|
+
}
|
255
|
+
|
256
|
+
.figure pre {
|
257
|
+
padding: 0px;
|
258
|
+
background: transparent;
|
259
|
+
border: none;
|
260
|
+
font-size: small;
|
261
|
+
font-family: monospace;
|
262
|
+
}
|
263
|
+
|
264
|
+
.figure .lineno {
|
265
|
+
text-align: right;
|
266
|
+
color: #B00;
|
267
|
+
font-family: monospace;
|
268
|
+
font-size: small;
|
269
|
+
padding-right: 1em;
|
270
|
+
}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
.ruby .normal {}
|
2
|
+
.ruby .comment { color: #005; font-style: italic; }
|
3
|
+
.ruby .keyword { color: #A00; font-weight: bold; }
|
4
|
+
.ruby .method { color: #077; }
|
5
|
+
.ruby .class { color: #074; }
|
6
|
+
.ruby .module { color: #050; }
|
7
|
+
.ruby .punct { color: #447; font-weight: bold; }
|
8
|
+
.ruby .symbol { color: #099; }
|
9
|
+
.ruby .string { color: #944; }
|
10
|
+
.ruby .char { color: #F07; }
|
11
|
+
.ruby .ident { color: #004; }
|
12
|
+
.ruby .constant { color: #07F; }
|
13
|
+
.ruby .regex { color: #B66; }
|
14
|
+
.ruby .number { color: #D55; }
|
15
|
+
.ruby .attribute { color: #377; }
|
16
|
+
.ruby .global { color: #3B7; }
|
17
|
+
.ruby .expr { color: #227; }
|
data/doc/manual/manual.rb
CHANGED
@@ -125,7 +125,7 @@ module Net ; module SSH
|
|
125
125
|
|
126
126
|
def extract_figures
|
127
127
|
@figures = []
|
128
|
-
@content.gsub!( /^\
|
128
|
+
@content.gsub!( /^\{\{\{(.*?)?\n(.*?)\n\}\}\}$/m ) do
|
129
129
|
body = $2.strip
|
130
130
|
opts = Hash[*$1.strip.split(/,/).map{|p| p.split(/=/)}.flatten]
|
131
131
|
@figures << Figure.new( opts, body )
|
@@ -234,7 +234,7 @@ module Net ; module SSH
|
|
234
234
|
end
|
235
235
|
|
236
236
|
end
|
237
|
-
end
|
237
|
+
end; end
|
238
238
|
|
239
239
|
if __FILE__ == $0
|
240
240
|
|
data/doc/manual/manual.yml
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
meta: !^meta
|
9
9
|
copyright: 2004,2005
|
10
10
|
author: Jamis Buck
|
11
|
-
email:
|
11
|
+
email: jamis@jamisbuck.org
|
12
12
|
|
13
13
|
product: !^product
|
14
14
|
name: Net::SSH
|
@@ -23,55 +23,52 @@ product: !^product
|
|
23
23
|
- Net::SSH Wiki: http://net-ssh.rubyforge.org/wiki/wiki.pl
|
24
24
|
|
25
25
|
recent_updates:
|
26
|
-
- "
|
27
|
-
- "Shell service"
|
28
|
-
- "Enhancements to the channel and connection interfaces"
|
29
|
-
- "Keyboard-interactive authentication method"
|
26
|
+
- "Updated from the (now-defunct) Hieraki version of the documentation"
|
30
27
|
|
31
28
|
chapters:
|
32
29
|
|
33
|
-
- Introduction:
|
34
|
-
- "What is Net::SSH?": !!file parts/
|
35
|
-
- "What isn't Net::SSH?": !!file parts/
|
36
|
-
- "Getting Net::SSH": !!file parts/
|
37
|
-
- License Information: !!file parts/
|
38
|
-
- Support: !!file parts/
|
39
|
-
- About the Author: !!file parts/
|
30
|
+
- "Introduction":
|
31
|
+
- "What is Net::SSH?": !!file parts/0000.txt
|
32
|
+
- "What isn't Net::SSH?": !!file parts/0001.txt
|
33
|
+
- "Getting Net::SSH": !!file parts/0002.txt
|
34
|
+
- "License Information": !!file parts/0003.txt
|
35
|
+
- "Support": !!file parts/0004.txt
|
36
|
+
- "About the Author": !!file parts/0005.txt
|
40
37
|
|
41
|
-
- Starting a Session:
|
42
|
-
- "Using Net::SSH.start": !!file parts/
|
43
|
-
- Using a Public/Private Key: !!file parts/
|
44
|
-
- Options: !!file parts/
|
45
|
-
- "Using Net::SSH::Session": !!file parts/
|
38
|
+
- "Starting a Session":
|
39
|
+
- "Using Net::SSH.start": !!file parts/0006.txt
|
40
|
+
- "Using a Public/Private Key": !!file parts/0007.txt
|
41
|
+
- "Options": !!file parts/0008.txt
|
42
|
+
- "Using Net::SSH::Session": !!file parts/0009.txt
|
46
43
|
|
47
|
-
- Channels:
|
48
|
-
- What are Channels
|
49
|
-
- Session.loop: !!file parts/
|
50
|
-
- Channel Types: !!file parts/
|
51
|
-
- Opening a Channel: !!file parts/
|
52
|
-
- Callbacks: !!file parts/
|
53
|
-
- Channel Operations: !!file parts/
|
44
|
+
- "Channels":
|
45
|
+
- "What are Channels?": !!file parts/0010.txt
|
46
|
+
- "Session.loop": !!file parts/0011.txt
|
47
|
+
- "Channel Types": !!file parts/0012.txt
|
48
|
+
- "Opening a Channel": !!file parts/0013.txt
|
49
|
+
- "Callbacks": !!file parts/0014.txt
|
50
|
+
- "Channel Operations": !!file parts/0015.txt
|
54
51
|
|
55
|
-
- Executing Commands:
|
56
|
-
- Using Channels: !!file parts/
|
57
|
-
- "Using #process.open": !!file parts/
|
58
|
-
- "Using #process.popen3": !!file parts/
|
52
|
+
- "Executing Commands":
|
53
|
+
- "Using Channels": !!file parts/0016.txt
|
54
|
+
- "Using #process.open": !!file parts/0017.txt
|
55
|
+
- "Using #process.popen3": !!file parts/0018.txt
|
59
56
|
|
60
|
-
- User Shells:
|
61
|
-
- Introduction: !!file parts/
|
62
|
-
- Using Channels: !!file parts/
|
63
|
-
- Shell Service: !!file parts/
|
64
|
-
- SyncShell Service: !!file parts/
|
65
|
-
- Terminal Clients: !!file parts/
|
57
|
+
- "User Shells":
|
58
|
+
- "Introduction": !!file parts/0019.txt
|
59
|
+
- "Using Channels": !!file parts/0020.txt
|
60
|
+
- "Shell Service": !!file parts/0021.txt
|
61
|
+
- "SyncShell Service": !!file parts/0022.txt
|
62
|
+
- "Terminal Clients": !!file parts/0023.txt
|
66
63
|
|
67
|
-
- Port Forwarding:
|
68
|
-
- Introduction: !!file parts/
|
69
|
-
- Local-to-Remote: !!file parts/
|
70
|
-
- Remote-to-Local: !!file parts/
|
71
|
-
- Direct Channels: !!file parts/
|
72
|
-
- Remote-to-Local Handlers: !!file parts/
|
64
|
+
- "Port Forwarding":
|
65
|
+
- "Introduction": !!file parts/0024.txt
|
66
|
+
- "Local-to-Remote": !!file parts/0025.txt
|
67
|
+
- "Remote-to-Local": !!file parts/0026.txt
|
68
|
+
- "Direct Channels": !!file parts/0027.txt
|
69
|
+
- "Remote-to-Local Handlers": !!file parts/0028.txt
|
73
70
|
|
74
|
-
- Using Proxies:
|
75
|
-
- Introduction: !!file parts/
|
76
|
-
- HTTP: !!file parts/
|
77
|
-
- SOCKS: !!file parts/
|
71
|
+
- "Using Proxies":
|
72
|
+
- "Introduction": !!file parts/0029.txt
|
73
|
+
- "HTTP": !!file parts/0030.txt
|
74
|
+
- "SOCKS": !!file parts/0031.txt
|
File without changes
|
File without changes
|
@@ -10,9 +10,9 @@ h3. Using "RubyGems":http://rubygems.rubyforge.org
|
|
10
10
|
|
11
11
|
If you have "RubyGems":http://rubygems.rubyforge.org installed, installing Net::SSH is simple:
|
12
12
|
|
13
|
-
|
13
|
+
{{{lang=shell,caption=Using Rubygems to install Net::SSH
|
14
14
|
gem install net-ssh
|
15
|
-
|
15
|
+
}}}
|
16
16
|
|
17
17
|
You still need to make sure you have a working version of Ruby's OpenSSL module, but other than that, you should be good to go!
|
18
18
|
|
@@ -20,9 +20,9 @@ h3. Using "rpa-base":http://rpa-base.rubyforge.org
|
|
20
20
|
|
21
21
|
If you have "rpa-base":http://rpa-base.rubyforge.org installed:
|
22
22
|
|
23
|
-
|
23
|
+
{{{lang=shell,caption=Using RPA to install Net::SSH
|
24
24
|
rpa install net-ssh
|
25
|
-
|
25
|
+
}}}
|
26
26
|
|
27
27
|
As with the gem install, you still need to make sure you have a working version of Ruby's OpenSSL module, but other than that, you should be good to go!
|
28
28
|
|
@@ -32,8 +32,9 @@ If you don't have "RubyGems":http://rubygems.rubyforge.org or "rpa-base":http://
|
|
32
32
|
|
33
33
|
Then, unpack the archive and run the @setup.rb@ script:
|
34
34
|
|
35
|
-
|
35
|
+
{{{lang=shell,caption=Using setup.rb to install Net::SSH
|
36
36
|
ruby setup.rb config
|
37
37
|
ruby setup.rb setup
|
38
38
|
ruby setup.rb install
|
39
|
-
|
39
|
+
}}}
|
40
|
+
|