The Antenna

finding signal in the noise

columns 2024.26

An experiment in personal news aggregation.

columns 2024.26

(date: 2024-06-30 11:36:55)


May I have a word with you?

date: 2024-06-30, from: Robert Reich’s blog

Friends, I want to try to reassure you about this country. I know that you’re worried and upset. You have every reason to be. Donald Trump is a vile human being, and he got away with a tsunami of lies Thursday night. Joe Biden didn’t come across with the vitality he needed to show.

https://robertreich.substack.com/p/may-i-have-a-word-with-you


Connecting the laptop to the server using UUCP

date: 2024-06-30, from: Alex Schroeder’s Blog

Connecting the laptop to the server using UUCP

I recently connected my server to another server via UUCP. Now I’m thinking that perhaps I’d like to connect my laptop as another node to it. I probably don’t need it, because I connected the laptop to the server via NNCP. But still. Perhaps still wants to do stuff via UUCP. Perhaps it is the completionist in me.

For reference, see UUCP over SSH by . Since we’re using SSH, there will be a key pair, and since we’re using UUCP, we’ll still a username and password. I know, why aren’t we using NNCP.

Generate the key pair.

cd /var/spool/uucp
sudo mkdir .ssh
sudo chown uucp:uucp .ssh
cd .ssh
sudo -u uucp ssh-keygen -C "uucp@melanobombus" -f id_rsa

The file uucp-key.pub now has the public key.

On the server (!), add a line to /var/spool/uucp/.ssh/authorized_keys, replacing the public key:

restrict,command="/usr/sbin/uucico -u Umelanobombus -l" ssh-rsa KEY_FROM_ID_RSA_PUB uucp@dwalin

We will be using the username Umelanobombus to connect to the server. This is not a real user!

On the server, save username and password in /etc/uucp/passwd.

Umelanobombus *secret*

On the laptop, save system name, username and the same password in /etc/uucp/call.

sibirocobombus Umelanobombus *secret*

Now we have both levels: the public and private keys that allow the uucp user to connect via ssh – and the username and password that is used by uucp.

Define our own name in /etc/uucp/config on the laptop.

nodename melanobombus

Let’s add the system to /etc/uucp/sys. That is, on the laptop, define the server we’re going to call. Since I already know that sibirocobombus will report itself as campaignwiki, I’m setting up an alias. The chat script waits for the “Password:” prompt and then sends it. Note that this chat script is much shorter than the one used in “UUCP over SSH”, linked above. Apparently there’s no “Login:” prompt on my server so I had to change it.

system sibirocobombus
alias campaignwiki
call-login *
call-password *
time any
chat Password: \P
chat-timeout 30
protocol i
port ssh_campaignwiki

Add the new port to etc/uucp/port. Note that I’m listening to incoming ssh connections on a non-standard port so I have to provide. Also note that here we’re defining the uucp “port” with a non-standard ssh “port”. Just in case you’re not already confused.

port ssh_campaignwiki
type pipe
command /usr/bin/ssh -a -x -q -p 882 uucp@campaignwiki.org
reliable true
protocol etyig

Before doing our first test, make sure that the server is a “known host” on the laptop, for the uucp user. Note how I am not using -q because I want to see the prompt!

The password to give on the prompt is the one in /etc/uucp/call.

sudo -u uucp ssh -p 882 uucp@campaignwiki.org
The authenticity of host '[campaignwiki.org]:882 ([2a02:418:6a04:178:209:50:237:1]:882)' can't be established.
ED25519 key fingerprint is SHA256:ups6Q5G8Ab5QT/cTnrv5FpdmdvVtK09ZG8j1ToEBV9c.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[campaignwiki.org]:882' (ED25519) to the list of known hosts.
PTY allocation request failed on channel 0
Password: *secret*
Shere=campaignwiki
^C

Let’s add the laptop to /etc/uucp/sys on the server. Since the server is never going to call the laptop, no credentials and no port is required.

system melanobombus
called-login Umelanobombus
local-send /
local-receive /var/spool/uucppublic
remote-send /
remote-receive /var/spool/uucppublic
time any
forward ANY
protocol i

Let’s test it!

On the client:

echo hallo > hallo.txt
uucp hallo.txt 'sibirocobombus!~/'

Let’s check the log.

This is what it looks like when things don’t work:

uulog|tail
uucp sibirocobombus alex (2024-06-30 18:02:27.50 9274) Queuing send of /home/alex/hallo.txt to ~/
uucico sibirocobombus - (2024-06-30 18:02:27.50 9275) Calling system sibirocobombus (port ssh_campaignwiki)
uucico sibirocobombus - (2024-06-30 18:02:31.51 9275) ERROR: Line disconnected

You can try to replace -q with -v in /etc/uucp/port in order to see what ssh has to say.

If you try again, the log says that the system is not ready to try again:

uucp sibirocobombus alex (2024-06-30 18:04:47.94 9454) Queuing send of /home/alex/hallo.txt to ~/
uucico sibirocobombus - (2024-06-30 18:04:47.94 9455) Retry time not reached

Force a call and check the log again.

sudo -u uucp uucico -S sibirocobombus

You might be specifying the wrong login, or using the wrong chat script. On the server, the log might look as follows:

uulog|tail
uucico - - (2024-06-30 17:56:42.92 1245805) Incoming call (login Umelanobombus port stdin)
uucico - - (2024-06-30 17:56:49.12 1245805) ERROR: Line disconnected
uucico - - (2024-06-30 18:02:30.70 1247584) ERROR: Bad login
uucico - - (2024-06-30 18:07:25.26 1248690) ERROR: Bad login

Check the passwords:

  1. /etc/uucp/call on the laptop says what username and password to use
  2. /etc/uucp/passwd on the server says what username and password to accept, separated by a TAB (!)

Check the system:

  1. /etc/uucp/config on the laptop says what the client is called
  2. /etc/uucp/sys on the laptop says what the server is called and how to connect to it, using what port
  3. /etc/uucp/port on the laptop describes that port
  4. /etc/uucp/sys on the server says what the client is called, what username to expect

Check the login again, by going through it by hand. Check whether the chat script would have worked.

sudo -u uucp ssh -p 882 uucp@campaignwiki.org
PTY allocation request failed on channel 0
Password: *secret*
Shere=campaignwiki
^C

When calling the server, specify a high debugging level:

sudo -u uucp uucico -x 11 -S sibirocobombus

To look at the debug output. Here’s an example where I mistyped the nodename in /etc/uucp/config on the laptop:

sudo uulog -D
uucico - - (2024-06-30 19:06:09.74 14487) DEBUG: usysdep_detach: Forked; old PID 14486, new pid 14487
uucico sibirocobombus - (2024-06-30 19:06:09.75 14487) DEBUG: fsysdep_get_work_init: Found C.NPBZaHpAACZk
uucico sibirocobombus - (2024-06-30 19:06:09.75 14487) DEBUG: fsysdep_get_work_init: Found C.NPDpxIuAACce
uucico sibirocobombus - (2024-06-30 19:06:09.75 14487) DEBUG: fconn_open: Opening port ssh_campaignwiki (default speed)
uucico sibirocobombus - (2024-06-30 19:06:09.75 14487) Calling system sibirocobombus (port ssh_campaignwiki)
uucico sibirocobombus - (2024-06-30 19:06:09.75 14487) DEBUG: Forking /usr/bin/ssh -a -x -v -p 882 uucp@campaignwiki.org
uucico sibirocobombus - (2024-06-30 19:06:09.75 14487) DEBUG: icexpect: Looking for 5 "word:"
uucico sibirocobombus - (2024-06-30 19:06:09.75 14487) DEBUG: icexpect: Got "Password:" (found it)
uucico sibirocobombus - (2024-06-30 19:06:10.32 14487) DEBUG: fcsend: Writing password "*secret*\r"
uucico sibirocobombus - (2024-06-30 19:06:10.32 14487) DEBUG: zget_uucp_cmd: Got "\020Shere=campaignwiki\000"
uucico sibirocobombus - (2024-06-30 19:06:10.33 14487) Login successful
uucico sibirocobombus - (2024-06-30 19:06:10.33 14487) DEBUG: fsend_uucp_cmd: Sending "Smelanobobus -R -N047"
uucico sibirocobombus - (2024-06-30 19:06:10.33 14487) DEBUG: fconn_write: Writing 23 "\020Smelanobobus -R -N047\000"
uucico sibirocobombus - (2024-06-30 19:06:10.33 14487) DEBUG: zget_uucp_cmd: Got "\020RYou are unknown to me\000"
uucico sibirocobombus - (2024-06-30 19:06:10.33 14487) ERROR: Handshake failed (You are unknown to me)
uucico sibirocobombus - (2024-06-30 19:06:10.33 14487) DEBUG: fconn_close: Closing connection
uucico sibirocobombus - (2024-06-30 19:06:10.43 14487) DEBUG: Call failed: 4 (Handshake failed)

If everything worked, however, the log on the client says:

uulog
uucico sibirocobombus - (2024-06-30 19:18:07.77 15159) Calling system sibirocobombus (port ssh_campaignwiki)
uucico sibirocobombus - (2024-06-30 19:18:08.40 15159) Login successful
uucico sibirocobombus - (2024-06-30 19:18:08.41 15159) Handshake successful (protocol 'i' sending packet/window 1024/16 receiving 1024/16)
uucico sibirocobombus alex (2024-06-30 19:18:08.42 15159) Sending /home/alex/hallo.txt (6 bytes)
uucico sibirocobombus alex (2024-06-30 19:18:08.42 15159) Sending /home/alex/hallo.txt (6 bytes)
uucico sibirocobombus - (2024-06-30 19:18:08.42 15159) Protocol 'i' packets: sent 9, resent 0, received 7
uucico sibirocobombus - (2024-06-30 19:18:08.42 15159) Call complete (0 seconds 12 bytes 0 bps)

The log on the server says:

uucico - - (2024-06-30 19:18:08.89 1265032) Incoming call (login Umelanobombus port stdin)
uucico melanobombus - (2024-06-30 19:18:08.90 1265032) Handshake successful (protocol 'i' sending packet/window 1024/16 receiving 1024/16)
uucico melanobombus alex (2024-06-30 19:18:08.90 1265032) Receiving /var/spool/uucppublic/hallo.txt (6 bytes)
uucico melanobombus alex (2024-06-30 19:18:08.90 1265032) Receiving /var/spool/uucppublic/hallo.txt (6 bytes)
uucico melanobombus - (2024-06-30 19:18:08.91 1265032) Protocol 'i' packets: sent 6, resent 0, received 8
uucico melanobombus - (2024-06-30 19:18:08.91 1265032) Call complete (0 seconds 12 bytes 0 bps)

And the file is in the public area:

ls /var/spool/uucppublic/
hallo.txt

And in the other direction, send a similar file to alex@melanobombus.

uuto hallo.txt 'melanobombus!alex'

On the laptop:

sudo -u uucp uucico -S sibirocobombus
uupick
from campaignwiki: file hallo.txt ?
m .

And I have it!

Don’t fogert the warning in the uuto documentation:

Note that `uuto’ does not provide any security – any user on the remote system can examine the files.

We really should have used NNCP! 😄

#Administration #UUCP

https://alexschroeder.ch/view/2024-06-30-nncp


@Dave Winer’s Scripting News (date: 2024-06-30, from: Dave Winer’s Scripting News)

This is how much of the activity on Threads, for me at least, comes from the fediverse.

http://scripting.com/2024/06/30.html#a160219


@Dave Winer’s Scripting News (date: 2024-06-30, from: Dave Winer’s Scripting News)

There’s a new version of the Blogroll Browser this morning.

http://scripting.com/2024/06/30.html#a153245


@Dave Winer’s Scripting News (date: 2024-06-30, from: Dave Winer’s Scripting News)

Today’s podcast, what we need from Biden, and how we need journalism to get out of the way. Biden has a base. He should communicate directly with us. Joe, tell us you saw what we saw. A snake oil salesman. A con man. A loser. A criminal. We heard the tape of him blackmailing the Secretary of State of Georgia. He wanted the military to shoot Black Lives Matter protestors. Did he sell our secrets to Putin and others? He did all kinds of horrible stuff that the press has forgotten to talk about. The biggest problem here isn’t Biden’s age, though it is a problem, it’s the controlling nature of our journalism, and the lack of any oversight. They can’t be criticized because all we have are our individual voices, with no organization. We keep paying the price. This podcast is in the form of a voicemail to an old friend, Jeff Jarvis, who I introduce at the beginning of the podcast. We share the same frustrations, I can see it in his posts on various social media networks. I’d like to elevate our discourse. And in the meantime, imho, it’s a pretty good story. 10 minutes. 😄

http://scripting.com/2024/06/30.html#a140456


‘Born in the U.S.A.’

date: 2024-06-30, from: Dan Rather’s Steady

A Reason To Smile

https://steady.substack.com/p/born-in-the-usa


Sunday caption contest: What?

date: 2024-06-30, from: Robert Reich’s blog

And last week’s winner

https://robertreich.substack.com/p/sunday-caption-contest-what


June 29, 2024

date: 2024-06-30, from: Heather Cox Richardson blog

There are many things I would like to write, but I am home, finally, after many months on the road, and it has been a long week. I am going to bed. Tomorrow, I will be out in my kayak in the place where I took this photograph, no matter what the skies decide to throw at me.

https://heathercoxrichardson.substack.com/p/june-29-2024


When the future doesn’t work anymore

date: 2024-06-30, from: Tracy Durnell Blog

https://tracydurnell.com/2024/06/29/when-the-future-doesnt-work-anymore/


@Dave Winer’s Scripting News (date: 2024-06-30, from: Dave Winer’s Scripting News)

Challenging questions: Why don’t journalists cover the Biden base? Do they even consider the possibility that there is one? Or do they think they are the base? I thought they weren’t supposed to care who the nominees are? Why do they feel entitled to say one candidate should withdraw but not the other? Have any of them even thought this through?

http://scripting.com/2024/06/29.html#a024446