github-auth 0.4.0 → 0.4.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +80 -17
- data/Rakefile +9 -2
- data/github-auth.gemspec +1 -0
- data/lib/github/auth/cli.rb +1 -0
- data/lib/github/auth/keys_client.rb +1 -0
- data/lib/github/auth/keys_file.rb +1 -0
- data/lib/github/auth/version.rb +1 -1
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ae6c8829c44543ade8a4ee209b00af812e1282d4
|
4
|
+
data.tar.gz: b01479f59d0ee0626f6b8d53b0d5271b0c8d5115
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7292a8368140bce7bac19bc704d0cccc0ddada1dbe3eeeb8603ac93907b1d294fd7facfac30069ff86776e2da31597bd025b1b15d10934ef701004633fa4bdcd
|
7
|
+
data.tar.gz: f79c42a9d9c078e168111a3ade0ada1362362c167dbaa793c5702ce297a4bcb72d230af3a1f1fbeceb483a318603ba63aa5991b5753a95cf17b11bf81f7c8f48
|
data/README.md
CHANGED
@@ -5,16 +5,19 @@
|
|
5
5
|
|
6
6
|
## Description
|
7
7
|
|
8
|
-
If you
|
9
|
-
|
10
|
-
|
11
|
-
|
8
|
+
If you agree to [\#pairwithme](https://twitter.com/search?q=pairwithme), we'll
|
9
|
+
probably be SSHing into my laptop, your laptop, or some laptop in the sky.
|
10
|
+
Sharing passwords over email is no fun, so we'll use public key authentication
|
11
|
+
to keep things fun, fast, and secure.
|
12
12
|
|
13
|
-
`gh-auth` allows you to
|
14
|
-
from your [`authorized_keys`](http://en.wikipedia.org/wiki/Ssh-agent)
|
13
|
+
`gh-auth` allows you to quickly add and remove any Github user's public ssh
|
14
|
+
keys from your [`authorized_keys`](http://en.wikipedia.org/wiki/Ssh-agent)
|
15
|
+
file.
|
15
16
|
|
16
|
-
Let's
|
17
|
-
|
17
|
+
Let's see how this works.
|
18
|
+
|
19
|
+
After you've [installed](#installation) `gh-auth`, you can give me ssh access
|
20
|
+
with:
|
18
21
|
|
19
22
|
```bash
|
20
23
|
$ gh-auth add chrishunt
|
@@ -44,7 +47,7 @@ Removing 2 key(s) from '/Users/chris/.ssh/authorized_keys'
|
|
44
47
|
## Usage
|
45
48
|
|
46
49
|
```bash
|
47
|
-
usage: gh-auth [add|remove] <username>
|
50
|
+
usage: gh-auth [--version] [add|remove] <username>
|
48
51
|
```
|
49
52
|
|
50
53
|
## Installation
|
@@ -55,7 +58,7 @@ Install the `github-auth` gem:
|
|
55
58
|
$ gem install github-auth
|
56
59
|
|
57
60
|
$ gh-auth
|
58
|
-
usage: gh-auth [add|remove] <username>
|
61
|
+
usage: gh-auth [--version] [add|remove] <username>
|
59
62
|
```
|
60
63
|
|
61
64
|
### SSH Public Key Authentication (Mac OS X)
|
@@ -77,7 +80,7 @@ $ chmod 600 ~/.ssh/authorized_keys
|
|
77
80
|
### Verification
|
78
81
|
|
79
82
|
If you'd like to verify that everything is working as expected, you can test
|
80
|
-
|
83
|
+
locally on your own machine.
|
81
84
|
|
82
85
|
First, authorized yourself for ssh. (Make sure to replace 'chrishunt' with
|
83
86
|
*your* Github username)
|
@@ -87,8 +90,8 @@ $ gh-auth add chrishunt
|
|
87
90
|
Adding 2 key(s) to '/Users/chris/.ssh/authorized_keys'
|
88
91
|
```
|
89
92
|
|
90
|
-
|
91
|
-
|
93
|
+
Now that your keys are added, verify that you can open an SSH session to your
|
94
|
+
machine with public key authentication:
|
92
95
|
|
93
96
|
```bash
|
94
97
|
$ ssh -o PreferredAuthentications=publickey localhost
|
@@ -96,15 +99,15 @@ $ ssh -o PreferredAuthentications=publickey localhost
|
|
96
99
|
(localhost)$
|
97
100
|
```
|
98
101
|
|
99
|
-
|
102
|
+
Next, remove your public keys from the keys file:
|
100
103
|
|
101
104
|
```bash
|
102
105
|
$ gh-auth remove chrishunt
|
103
106
|
Removing 2 key(s) from '/Users/chris/.ssh/authorized_keys'
|
104
107
|
```
|
105
108
|
|
106
|
-
|
107
|
-
|
109
|
+
Since you've removed your keys, verify now that you can no longer login to your
|
110
|
+
machine with public key authentication:
|
108
111
|
|
109
112
|
```bash
|
110
113
|
$ ssh -o PreferredAuthentications=publickey localhost
|
@@ -112,11 +115,71 @@ $ ssh -o PreferredAuthentications=publickey localhost
|
|
112
115
|
> Permission denied (publickey,keyboard-interactive)
|
113
116
|
```
|
114
117
|
|
118
|
+
## Troubleshooting
|
119
|
+
|
120
|
+
### How do people actually connect to my machine?
|
121
|
+
|
122
|
+
Good question! Others will connect to your machine using ssh:
|
123
|
+
|
124
|
+
```bash
|
125
|
+
$ ssh username@external-ip-address
|
126
|
+
```
|
127
|
+
|
128
|
+
### What username do I use?
|
129
|
+
|
130
|
+
The `username` is going to be the same username that you used to add the keys.
|
131
|
+
In most cases, it's a good idea to create a new `pair` account and use that
|
132
|
+
account for all pairings. You don't want strangers reading your email!
|
133
|
+
|
134
|
+
Once you've created the pair account, you can switch to it yourself in a
|
135
|
+
terminal with:
|
136
|
+
|
137
|
+
```bash
|
138
|
+
$ su - pair
|
139
|
+
```
|
140
|
+
|
141
|
+
### How do I get my external IP?
|
142
|
+
|
143
|
+
You can get your external IP address with:
|
144
|
+
|
145
|
+
```bash
|
146
|
+
$ curl http://remote-ip.herokuapp.com
|
147
|
+
```
|
148
|
+
|
149
|
+
### It's still not working! :(
|
150
|
+
|
151
|
+
In almost all cases, your laptop is not directly plugged into your modem.
|
152
|
+
You're on a wirelress network or plugged directly into a router or switch. This
|
153
|
+
means the external IP address that your pair is connecting to is not your
|
154
|
+
machine, it's actually your router.
|
155
|
+
|
156
|
+
You can tell your router to forward ssh connections to your machine by enabling
|
157
|
+
[port forwarding](http://en.wikipedia.org/wiki/Port_forwarding). You will want
|
158
|
+
to forward port `22` (ssh) to the local IP address of your machine.
|
159
|
+
|
160
|
+
If port `22` is already forwarded to another machine or you want to change
|
161
|
+
things up, you can have ssh listen on another port and have your pair connect
|
162
|
+
with:
|
163
|
+
|
164
|
+
```bash
|
165
|
+
ssh -p <port> username@external-ip-address
|
166
|
+
```
|
167
|
+
|
168
|
+
### I can't enable port forwarding, my boss won't let me. Can I still pair?
|
169
|
+
|
170
|
+
Yes! A nice solution to this is to have a machine **somewhere else** that both
|
171
|
+
of you can ssh into. Place this machine on a network that you *do* have the
|
172
|
+
ability to forward ports. Maybe this machine is at home, a friend's house, or
|
173
|
+
at a company your worked for in the past that forgot to turn it off.
|
174
|
+
|
175
|
+
If this isn't possible, then you can use a VPS provider like
|
176
|
+
[Linode](http://www.linode.com) to setup a pairing machine in the cloud.
|
177
|
+
|
115
178
|
## Contributing
|
116
179
|
|
117
180
|
1. Fork it
|
118
181
|
2. Create your feature branch (`git checkout -b my-new-feature`)
|
119
|
-
3. Commit your changes (`git commit -am 'Add some feature'`)
|
182
|
+
3. Commit your changes, with tests (`git commit -am 'Add some feature'`)
|
120
183
|
4. Run the tests (`bundle exec rake spec`)
|
121
184
|
5. Push to the branch (`git push origin my-new-feature`)
|
122
185
|
6. Create new Pull Request
|
data/Rakefile
CHANGED
@@ -1,9 +1,16 @@
|
|
1
1
|
require 'bundler/gem_tasks'
|
2
2
|
require 'rspec/core/rake_task'
|
3
|
+
require 'cane/rake_task'
|
3
4
|
|
4
5
|
desc 'Run all tests'
|
5
|
-
RSpec::Core::RakeTask.new(:spec) do |
|
6
|
-
|
6
|
+
RSpec::Core::RakeTask.new(:spec) do |task|
|
7
|
+
task.rspec_opts = '--color --order random'
|
8
|
+
end
|
9
|
+
|
10
|
+
desc 'Check code quality'
|
11
|
+
Cane::RakeTask.new(:quality) do |task|
|
12
|
+
task.abc_max = 9
|
7
13
|
end
|
8
14
|
|
9
15
|
task default: :spec
|
16
|
+
task default: :quality
|
data/github-auth.gemspec
CHANGED
@@ -21,6 +21,7 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.add_development_dependency 'bundler', '~> 1.3'
|
22
22
|
spec.add_development_dependency 'rake'
|
23
23
|
spec.add_development_dependency 'rspec'
|
24
|
+
spec.add_development_dependency 'cane'
|
24
25
|
spec.add_development_dependency 'coveralls'
|
25
26
|
spec.add_development_dependency 'sinatra'
|
26
27
|
spec.add_development_dependency 'thin'
|
data/lib/github/auth/cli.rb
CHANGED
data/lib/github/auth/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: github-auth
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Hunt
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-04-
|
11
|
+
date: 2013-04-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
- - '>='
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: cane
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: coveralls
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|