github-auth 0.4.0 → 0.4.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.
- 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
|