Class: MJ::Tools::SSH

Inherits:
Object
  • Object
show all
Includes:
SubProcess
Defined in:
lib/mj/tools/ssh.rb

Class Method Summary collapse

Class Method Details

.add_key(key_file) ⇒ Object



19
20
21
22
23
24
25
26
# File 'lib/mj/tools/ssh.rb', line 19

def self.add_key( key_file )
    if @keys_added.index( key_file )
        return
    end
    if ssh_add( "#{key_file}" ) == 0
        @keys_added << key_file
    end
end

.cleanupObject



28
29
30
31
32
33
# File 'lib/mj/tools/ssh.rb', line 28

def self.cleanup
    @keys_added.each do |file|
        self.remove_key( file )
    end
    @keys_added = []
end

.has_key?(key_file) ⇒ Boolean

Returns:

  • (Boolean)


35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/mj/tools/ssh.rb', line 35

def self.has_key?( key_file )
    if @keys_added.index( key_file )
        return true
    end
    found = false
    ssh_add '-l' do
        |line|
        if line.index(key_file)
            return found = true
        end
    end
    return found
end

.has_keys?Boolean

Returns:

  • (Boolean)


11
12
13
# File 'lib/mj/tools/ssh.rb', line 11

def self.has_keys?
    return ! @keys_added.empty?
end

.keysObject



15
16
17
# File 'lib/mj/tools/ssh.rb', line 15

def self.keys
    return @keys_added
end

.list_keysObject



57
58
59
# File 'lib/mj/tools/ssh.rb', line 57

def self.list_keys
    ssh_add( "-l" )
end

.remove_all_keysObject



53
54
55
# File 'lib/mj/tools/ssh.rb', line 53

def self.remove_all_keys
    ssh_add( "-D" )
end

.remove_key(key_file) ⇒ Object



49
50
51
# File 'lib/mj/tools/ssh.rb', line 49

def self.remove_key( key_file )
    ssh_add( "-d #{key_file}" )
end

.ssh_add(command, &block) ⇒ Object



61
62
63
64
65
66
67
# File 'lib/mj/tools/ssh.rb', line 61

def self.ssh_add( command,  &block )
    if block_given?
        self.execute "ssh-add #{command}", &block
    else
        self.execute "ssh-add #{command}"
    end
end