blob: 899d6a0d104de08ef406cdfcc80cf20f355fd6b1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
<html lang="en">
<head>
<title>Extra Extra</title>
<link rel="stylesheet" href="style.css">
<link rel="apple-touch-icon" sizes="180x180" href="data/favicon/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="data/favicon/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="data/favicon/favicon-16x16.png">
<link rel="manifest" href="data/favicon/site.webmanifest">
<style>
code {
border: 1px solid grey;
border-radius: 3px;
color: #434C5E;
padding: 1.5px;
}
pre {
background: #f4f4f4;
border: 1px solid #grey;
color: #434C5E;
padding-top: 20px;
padding-left: 20px;
overflow: auto;
}
</style>
</head>
<body>
<a style="text-decoration: none;" href="index.html"><--</a>
<h2>Some bits & bobs</h2>
Here lives some miscellaneous things I reference one or one hundred
times and figure they should be gathered somewhere.
<h3>WPA Supplicant</h3>
Frequently forgotten usage of the <code>wpa_cli</code> tool
<pre>
> scan
...
<3>CTRL-EVENT-SCAN-RESULTS
> scan_results # run once above event appears
bssid / freq / sig lvl / flags / ssid
...
> add_network
#
> set_network # ssid "network"
> set_network # psk "psswd"
# or if no password:
> set_network # key_mgmt NONE
> enable_network #
> save_config
</pre>
<h3>GPG key signing with Git</h3>
Sometime ago I spent hours on this. When signing a
commit, this error would appear
<pre>
gpg: skipped "Foo Bar <Foo_Bar@baz>": No secret key[GNUPG:] INV_SGNR 9 Foo Bar <Foo_Bar@baz>[GNUPG:] FAILURE sign 17
gpg: signing failed: No secret key
</pre>
After much searching I came up empty handed. Finally, one thing
stood out. The name and email in <code>~/.gitconfig</code> must
match exactly to the name and email associated with the GPG key
<pre>
$ gpg --list-secret-keys --keyid-format=long
/home/foo/.gnupg/pubring.kbx
-----------------------------
sec rsa4096/FC53C827D09C7050 2019-03-24 [SC]
ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890
uid [ultimate] <b>Foo Bar <Foo_Bar@baz></b>
ssb rsa4096/2EE67124D597BB00 2019-03-24 [E]
$ head -n 4 .gitconfig
[user]
<b>name = Foo Bar
email = Foo_Bar@baz</b>
signingkey = FC53C827D09C7050
</pre>
<h3>SSH agent for password-less login</h3>
I have numerous machines I frequently log in to and from via SSH. Typing
in a password every time is tiresome and a password-less key is not
an option. A solution is an SSH agent running in the background, which
prompts for a password once at log in, and stores it for the duration
of the session (until reboot). The following can live in your shell's
startup file (e.g. <code>~/.zshrc</code>)
<pre>
if [ ! -S ~/.ssh/ssh_auth_sock ]; then
eval "$(ssh-agent)"
ln -sf "$SSH_AUTH_SOCK" ~/.ssh/ssh_auth_sock
fi
export SSH_AUTH_SOCK=~/.ssh/ssh_auth_sock
ssh-add -l > /dev/null || ssh-add
</pre>
Then, just copy the needed key between machines with <code>ssh-copy-id -i ~/.ssh/id_xxx.pub name@host</code>
<h3>Configuration file manager</h3>
Across the aforementioned machines, I also have various configuration
files that I like to keep track of for the sake of backing
them up in case of data loss. I use <a href="https://github.com/TheLocehiliosan/yadm" target="_blank">yadm</a>
to achieve this. Mostly for it's ease of use (yadm is quite simply
an alias for git) and minimal system footprint, which consists mostly
of a git directory living out of sight in <code>~/.local/share/yadm/repo.git</code>.
Since it's just Git under the hood, a standard <code>.gitignore</code>
file can be used to ignore which ever files you choose in your home directory.
By default, yadm only manages files within your home directory. While not
conventional, it can also be used to track system-level files by creating
an alias like <code>sysyadm="sudo yadm --yadm-dir /etc/yadm --yadm-data /etc/yadm/data"</code>,
then used like normal.
<pre>
# sysyadm init -w /
# sysyadm add foo.conf
# sysyadm commit -m "foo"
</pre>
</body>
</html>
|