ssh-forever 0.2.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/History.txt +8 -0
- data/README.markdown +10 -6
- data/VERSION +1 -1
- data/bin/ssh-forever +19 -1
- data/lib/ssh-forever.rb +11 -3
- data/ssh-forever.gemspec +3 -2
- metadata +3 -2
data/History.txt
ADDED
data/README.markdown
CHANGED
|
@@ -2,16 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
Simple command to give you password-less SSH login on remote servers:
|
|
4
4
|
|
|
5
|
-
ssh-forever username@yourserver.com
|
|
5
|
+
ssh-forever username@yourserver.com [-p port]
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
## Installation
|
|
8
8
|
|
|
9
9
|
gem sources --add http://gemcutter.org
|
|
10
10
|
gem install ssh-forever
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
## Example:
|
|
13
13
|
|
|
14
|
-
[matt@bowie ssh-forever (master)]$
|
|
14
|
+
[matt@bowie ssh-forever (master)]$ ssh-forever mattwynne@mattwynne.net
|
|
15
15
|
You do not appear to have a public key. I expected to find one at /Users/matt/.ssh/id_rsa.pub
|
|
16
16
|
Would you like me to generate one? [Y/n]y
|
|
17
17
|
Copying your public key to the remote server. Prepare to enter your password for the last time.
|
|
@@ -28,9 +28,13 @@ Simple command to give you password-less SSH login on remote servers:
|
|
|
28
28
|
Any malicious and/or unauthorized activity is strictly forbidden.
|
|
29
29
|
All activity may be logged by DreamHost Web Hosting.
|
|
30
30
|
|
|
31
|
-
Last login: Sat Aug 15 17:24:17 2009
|
|
31
|
+
Last login: Sat Aug 15 17:24:17 2009
|
|
32
32
|
[broncos]$
|
|
33
33
|
|
|
34
|
-
|
|
34
|
+
## Why
|
|
35
|
+
|
|
36
|
+
Because I can never remember how to do it by hand. Now I don't have to, and nor do you.
|
|
37
|
+
|
|
38
|
+
## Copyright
|
|
35
39
|
|
|
36
40
|
Copyright (c) 2009 Matt Wynne. See LICENSE for details.
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.2.
|
|
1
|
+
0.2.1
|
data/bin/ssh-forever
CHANGED
|
@@ -2,6 +2,24 @@
|
|
|
2
2
|
|
|
3
3
|
$:.unshift File.join(File.dirname(__FILE__), '..', 'lib')
|
|
4
4
|
require 'ssh-forever'
|
|
5
|
+
require 'optparse'
|
|
6
|
+
|
|
7
|
+
help = 'Usage: ssh-forever username@yourserver.com [-p port]'
|
|
8
|
+
|
|
9
|
+
options = {}
|
|
10
|
+
OptionParser.new do |opts|
|
|
11
|
+
opts.banner = help
|
|
12
|
+
|
|
13
|
+
opts.on('-p', '--port [PORT]', 'port') do |port|
|
|
14
|
+
options[:port] = port
|
|
15
|
+
end
|
|
16
|
+
end.parse!
|
|
5
17
|
|
|
6
18
|
login = ARGV[0]
|
|
7
|
-
|
|
19
|
+
|
|
20
|
+
if login.nil?
|
|
21
|
+
puts help
|
|
22
|
+
exit 1
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
SecureShellForever.run(login, options)
|
data/lib/ssh-forever.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
module SecureShellForever
|
|
2
2
|
class << self
|
|
3
|
-
def run(login)
|
|
3
|
+
def run(login, options = {})
|
|
4
4
|
unless File.exists?(public_key_path)
|
|
5
5
|
STDERR.puts "You do not appear to have a public key. I expected to find one at #{public_key_path}\n"
|
|
6
6
|
STDERR.print "Would you like me to generate one? [Y/n]"
|
|
@@ -10,10 +10,18 @@ module SecureShellForever
|
|
|
10
10
|
end
|
|
11
11
|
generate_public_key
|
|
12
12
|
end
|
|
13
|
+
|
|
14
|
+
args = [
|
|
15
|
+
' ',
|
|
16
|
+
("-p #{options[:port]}" if options[:port] =~ /^\d+$/)
|
|
17
|
+
].compact.join(' ')
|
|
18
|
+
|
|
13
19
|
puts "Copying your public key to the remote server. Prepare to enter your password for the last time."
|
|
14
|
-
`ssh #{login} "#{remote_command}"`
|
|
20
|
+
`ssh #{login}#{args} "#{remote_command}"`
|
|
21
|
+
exit 1 unless $?.exitstatus == 0
|
|
22
|
+
|
|
15
23
|
puts "Success. From now on you can just use plain old 'ssh'. Logging you in..."
|
|
16
|
-
exec "ssh #{login}"
|
|
24
|
+
exec "ssh #{login}#{args}"
|
|
17
25
|
end
|
|
18
26
|
|
|
19
27
|
def remote_command
|
data/ssh-forever.gemspec
CHANGED
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
|
|
6
6
|
Gem::Specification.new do |s|
|
|
7
7
|
s.name = %q{ssh-forever}
|
|
8
|
-
s.version = "0.2.
|
|
8
|
+
s.version = "0.2.1"
|
|
9
9
|
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
11
11
|
s.authors = ["Matt Wynne"]
|
|
12
|
-
s.date = %q{2009-
|
|
12
|
+
s.date = %q{2009-09-03}
|
|
13
13
|
s.default_executable = %q{ssh-forever}
|
|
14
14
|
s.description = %q{Provides a replacement for the SSH command which automatically copies your public key while logging in}
|
|
15
15
|
s.email = %q{matt@mattwynne.net}
|
|
@@ -20,6 +20,7 @@ Gem::Specification.new do |s|
|
|
|
20
20
|
]
|
|
21
21
|
s.files = [
|
|
22
22
|
".gitignore",
|
|
23
|
+
"History.txt",
|
|
23
24
|
"LICENSE",
|
|
24
25
|
"README.markdown",
|
|
25
26
|
"Rakefile",
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ssh-forever
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.2.
|
|
4
|
+
version: 0.2.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Matt Wynne
|
|
@@ -9,7 +9,7 @@ autorequire:
|
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
11
|
|
|
12
|
-
date: 2009-
|
|
12
|
+
date: 2009-09-03 00:00:00 +01:00
|
|
13
13
|
default_executable: ssh-forever
|
|
14
14
|
dependencies: []
|
|
15
15
|
|
|
@@ -24,6 +24,7 @@ extra_rdoc_files:
|
|
|
24
24
|
- README.markdown
|
|
25
25
|
files:
|
|
26
26
|
- .gitignore
|
|
27
|
+
- History.txt
|
|
27
28
|
- LICENSE
|
|
28
29
|
- README.markdown
|
|
29
30
|
- Rakefile
|