Scott Lowe
blog.scottlowe.org · Personal blog · on HN since 2010
Scott Lowe writes technical how-tos on networking, Linux, SSH, Docker, Git and virtualization, with posts dating back to 2006.
What HN saysHN commenters call it a go-to for network-related reading and cite it for specifics like avoiding .local on macOS and Linux network namespaces.
27HN people shared it
12linked it in comments
16stories submitted
456story points
2 years agolast shared
2010people per year2026
Most-shared posts
- 1Mac OS X and .local Domains (2006)3 people · 2 points · first shared 2015 · discussion on HN
- 2Using SSH Multiplexing (2015)3 people · 1 points · first shared 2017 · discussion on HN
- 3Introducing Linux Network Namespaces2 people · 6 points · first shared 2016 · discussion on HN
- 4Using an SSH Bastion Host (2015)2 people · 2 points · first shared 2016 · discussion on HN
- 5Conditional Git Configuration1 people · 287 points · first shared 2023 · 70 comments on HN
- 6A Quick Introduction to LXD1 people · 142 points · first shared 2015 · 37 comments on HN
- 7Running a Small Docker Swarm Cluster1 people · 3 points · first shared 2015 · discussion on HN
- 8Using WireGuard on macOS via the CLI1 people · 3 points · first shared 2023 · discussion on HN
- 9On the Topic of Lock-In1 people · 2 points · first shared 2016 · discussion on HN
- 10The End of the Infrastructure Engineer?1 people · 2 points · first shared 2011 · discussion on HN
- 11Checking Out GitHub Pull Requests Locally1 people · 2 points · first shared 2015 · discussion on HN
- 12A Brief Introduction to Linux Containers with LXC1 people · 2 points · first shared 2013 · discussion on HN
- 13Retiring the Rockstar: A Counterpoint1 people · 1 points · first shared 2015 · discussion on HN
- 14The Future of VLANs1 people · 1 points · first shared 2013 · 1 comments on HN
- 15What is sr iov1 people · first shared 2014
What HN people wrote when they linked it
mech422 · 2020-05-16
I don't subscribe, but I tend to binge read:
https://blog.scottlowe.org/ (anything and everything network related)
https://blogs.sciencemag.org/pipeline/ (anything 'pharma' but especially "Things I won't work with..")
I wonder if they're related ...
edit: fiddle with formatting / spelling
jtreminio · 2019-02-16
If you've any developers on your team that use MacOS, avoid .local since it does some listening on this for Bonjour: https://blog.scottlowe.org/2006/01/04/mac-os-x-and-local-domains/
I believe .localhost is the "official" recommended TLD for local development.
darrmit · 2017-12-22
I'm sure this might be an unpopular opinion here, but my experience has been that when you do normal business collaboration - WebEx, etc. - in Linux, you spend more time fighting to make things work than you do actually working. Chrome and the proliferation of webapps has helped this somewhat, but it always ends up being something.
Scott Lowe did a pretty interesting series of blog posts [1] on it and ultimately ended up back on a Mac because it just killed his productivity and called it "death by a thousand cuts". This mirrors my experience. I want to be on Linux and there's a lot to love, but it's just not..stable? evolved? polished? (not sure what the right word is) enough to be a daily driver for most non-development oriented people.
[1] https://blog.scottlowe.org/2017/10/25/linux-migration-wrap-up/
contingencies · 2014-10-19
No mention of network namespaces[1], network-related capabilities[2] or Open vSwitch[3].
[1] http://blog.scottlowe.org/2014/03/21/a-follow-up-on-linux-network-name…
[2] http://linux.die.net/man/7/capabilities
[3] http://openvswitch.org/
zanderhill · 2025-02-12
Very excited about the fork's improvements given the lack of responsiveness in core repo. I've hit some of these bugs including the registry issue. Thank you for open sourcing it.
I've used a combination of ProxyCommand directive in ssh config + a script it calls w/ the `%h` (host) to unpack what the correct instance-id is (like @galanwe). For the proxycommand, you can embed an `aws ec2-instance-connect send-ssh-public-key` for pushing a key valid for 60s followed by activating the SSM session.
The downside is it adds ~20-30s delay in connection due to the API requests, but if you're making repeated rapid requests to same instance, I recommend looking into ssh's ControlPath, ControlMaster and ControlPersist to keep a longer lived session that's re-used for client re-connections (ref: https://blog.scottlowe.org/2015/12/11/using-ssh-multiplexing/)
[Edit to add that I've hit the registry bug myself]
pratio · 2024-08-06
Like other commentators have already mentioned but the openssl suite already solves these problems and even more complex ones
For example:
Specifying different keys different servers
Host github.com
User git IdentityFile ~/.ssh/id_rsa_github Host myserver
User username IdentityFile ~/.ssh/id_rsa_myserver Reuse SSH connections for multiple sessions
https://blog.scottlowe.org/2015/12/11/using-ssh-multiplexing/
https://blog.poespas.me/posts/2024/04/27-optimizing-ssh-connections-wi…
Host *
ControlMaster auto ControlPath ~/.ssh/sockets/%r@%h-%p ControlPersist 600 Other than that, you can also do ssh agent forwarding, port forwarding etc. These are all crucial functions that user like me need when we access remote machines.
I hope you take this as constructive criticism and not a knockdown on your work. You've created and released something that's great but this site usually brings more advanced users.
coldtea · 2020-12-01
>I mean, wtf? With open source, there is at least discussion and education about something like this.
You'd be surprised -- unless you follow dev forums for various elements of your DE/distro.
macOS moves because it updates into a clean system as far as those configs are concerned.
In any case, it takes like 2 minutes to write a shell script to deploy your pf.conf/automount config after every such upgrade, and 1 seconds to use it. Or to look for the proper, permanent, way to do it: https://blog.scottlowe.org/2013/05/15/using-pf-on-os-x-mountain-lion/
With brew and brew mas you can also automate command line and GUI app installations, even custom font installs, among other things.
I can get up and running into a new machine in ~2 hours from a clean install with an automated shell script and get all my apps and cli apps, custom shell aliases/scripts, configuration for dev tools like VSCode and IntelliJ, documents (from TM/Dropbox) and so on.
ynezz · 2021-09-02
> Has anyone don this or could anyone point me in the right direction?
Policy based routing https://blog.scottlowe.org/2013/05/29/a-quick-introduction-to-linux-po…
e12e · 2015-10-08
Not, that weird:
> Host names that contain only one label in
> addition to local, for example
> "My-Computer.local", are resolved using
> Multicast DNS (Bonjour) by default. Host names
> that contain two or more labels in addition to
> local, for example "server.domain.local", are
> resolved using a DNS server by default.
Apparently there's nothing wrong with adapting, say, .dev.local (or
.ifft.local) with a coresponding hack, ahem, file, under
/etc/resolver/dev.local:
http://blog.scottlowe.org/2006/01/04/mac-os-x-and-local-domains/
hillad · 2010-12-15
The more famous (with VMware) Scott Lowe rarely writes about BSD and has denied any sort of involvement. http://blog.scottlowe.org/2010/12/14/allegations-regarding-fbi-involve…
predakanga · 2016-05-22
Besides the usual public/private key system, OpenSSH supports a less-used system called user certificates.
User certificates achieve the same purpose as your normal key but instead of pre-installing your public key on the server, you present a certificate during authentication and the server checks that it's signed by a trusted authority - it's more or less a PKI similar to that used for HTTPS, etc.
One of the key advantages of this approach is that the CA can enforce limits on the key, such as validity periods and disabling SSH features like port forwarding, binding a certificate to only run a particular command, or only allowing it's use from a specific IP.
BLESS appears to be a piece of infrastructure for autonomously signing these certificates - on it's own that gives you benefits like a proper audit log, but it seems that it's real purpose is to enable an SSH bastion host[0] to generate ephemeral keys for the servers it accesses.
[0]: http://blog.scottlowe.org/2015/11/21/using-ssh-bastion-host/
teraflop · 2014-05-21
This is pretty interesting, but unfortunately their intro page doesn't do a good job of explaining why. (For instance, they use the word "unprecedented" without really saying what makes Arrakis different from previous exokernel-like designs.) I'll try to summarize what I got out of skimming the paper[1]:
When you have multiple applications running on the same machine, you need some way to safely share resources between them; for example, incoming network packets are a resource. A kernel handles this by keeping a data structure mapping sockets to processes, and demultiplexing data that comes in from the network card. Hypervisors work the same way, except at the level of virtual machines rather than processes.
Arrakis does the same thing, but relies on hardware support in the network card to dispatch packets to the right process. This relies on a standard called SR-IOV[2] which allows the OS to configure a PCI device to present itself as multiple virtual subdevices. The kernel programs the NIC to dispatch packets to different buffers depending on the incoming MAC address; after that, packets can be dispatched with no kernel involvement at all. Similarly, you can tell a disk controller to present a particular extent of a disk as a new virtual storage device.
The blurb about memory protection seems to be a red herring, because as far as I can see they haven't done anything to change that. There's still a kernel, which handles requests for resource mappings, and processes are…