The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My badges

  • Twitter Updates

  • My Flickr Stream

  • Pages

  • All categories

  • Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 1,862 other subscribers

Archive for the ‘*nix’ Category

Best android apps for zabbix – AndroidMeta

Posted by jpluimers on 2020/05/28

If I land a project using Zabbix again, one of the things I need to look into is [WayBackBest android apps for zabbix – AndroidMeta.

–jeroen

Posted in *nix, Android, Android Devices, Development, Linux, Mobile Development, Monitoring, Power User, Zabbix | Leave a Comment »

Raspberry Pi 1B OpenSuSE Tumbleweed zypper upgrade problem · GitHub

Posted by jpluimers on 2020/05/25

It looks like OpenSuSE has stopped supporting Raspberry Pi 1, so the best likely is to recycle it into a Pi-Hole as basically it’s been dead since mid 2017: [WayBack] Raspberry Pi 1B OpenSuSE Tumbleweed zypper upgrade problem · GitHub.

Build status for armv6l support: [WayBack] Project openSUSE:Factory:ARM Status Monitor – openSUSE Build Service

–jeroen

Read the rest of this entry »

Posted in *nix, *nix-tools, Debian, Development, Hardware Development, History, Linux, openSuSE, Power User, Raspberry Pi, Raspbian, SuSE Linux, Tumbleweed | Leave a Comment »

David Korn Tells All – Slashdot

Posted by jpluimers on 2020/05/21

Almost 20 years old, but still a very nice read [Archive.is] David Korn Tells All – Slashdot.

Another funny story involving David Korn during the not-so open source times of Microsoft late last century: [WayBack] Korn Shell Story

–jeroen

Posted in *nix, *nix-tools, bash, bash, Development, History, Power User, Scripting, Software Development | Leave a Comment »

ipmi – Linux: Why does Single User mode work on Serial Console but not on the attached Keyboard/Video/Monitor? – Server Fault

Posted by jpluimers on 2020/05/19

From [WayBack] ipmi – Linux: Why does Single User mode work on Serial Console but not on the attached Keyboard/Video/Monitor? – Server Fault (slightly edited; thanks Patrick!):

Because init has not spawned off multiple TTYs yet (getty, mgetty, etc), so you only have the primary TTY. The primary TTY is the last console= parameter on the kernel command line. All the console parameters get the output, but only the last one will be able to act as input.

–jeroen

Posted in *nix, Debian, Linux, openSuSE, Power User, RedHat, SuSE Linux, Tumbleweed | Leave a Comment »

Show openSUSE:Factory / bootchart – openSUSE Build Service

Posted by jpluimers on 2020/05/15

On my research list: [WayBack] Show openSUSE:Factory / bootchart – openSUSE Build Service.

I bumped here when researching on how to list services: [WayBack] init.d – Command to list services that start on startup? – Ask Ubuntu

It seems few people use it on opensuse, but it is interesting for analysing the boot process nonetheless.

I already found out this is in fact bootchart2: [WayBack] GitHub – xrmx/bootchart: merge of bootchart-collector and pybootchartgui

Some links that should help me further are these:

From the last link, this translation:

A. systemd-analyze

You will see the total computer startup time after:

systemd-analyze

A complete list of how much each individual service has taken is when you complete:

systemd-analyze blame

You will see the most problematic processes after you complete:

systemd-analyze critical-chain

You can create a picture:

systemd-analyze plot> /tmp/systemd-analyze.svg

Suitable for: openSUSE 11.4, 12.x, 13.1, Leap 42.x

Not suitable: openSUSE 13.2

B. bootchart

First, install the bootchart package (bootchart 2 version of the program). If you are using openSUSE Leap 42.x or later, enable bootchart2 (and optional bootchart2-done) service:

systemctl enable bootchart2

systemctl enable bootchart2-done

If you are using openSUSE version 13.1 or earlier, go to YaST → (System) → Startup and enter kernel startup parameters:

initcall_debug printk.time = y quiet init = / sbin / bootchartd rdinitrd = / sbin / bootchartd

The next time you start your computer, the /var/log/bootchart.png image will be created to help you further optimize your system startup. For example, if you do not need an AppArmor who cares about security, you can disable the boot.apparmor service through the YaST Service Configuration Module.

Suitable for: openSUSE 11.4, 12.x, 13.1, 13.2, Leap 42.x

–jeroen

Posted in *nix, *nix-tools, Linux, openSuSE, Power User, SuSE Linux, Tumbleweed | Leave a Comment »

Listing services on OpenSuSE Linux

Posted by jpluimers on 2020/05/15

Nowadays, most OpenSuSE Linux services are systemd based. Listing those is simple with systemctl list-units --all (configured ones) and systemctl list-unit-files (nonconfigured ones as well), though their states can be many as the command-completion for the --state parameter:

# systemctl list-unit-files --state
abandoned deactivating failed masked not-found remounting-sigterm start-pre stop-sigkill waiting
activating deactivating-sigkill final-sigkill merged plugged running stop stop-sigterm
activating-done deactivating-sigterm final-sigterm mounted registered sigkill stop-post stub
activating-sigkill dead inactive mounting reload sigterm stop-pre tentative
activating-sigterm elapsed listening mounting-done reloading start stop-pre-sigkill unmounting
active error loaded mounting-sigkill remounting start-chown stop-pre-sigterm unmounting-sigkill
auto-restart exited making mounting-sigterm remounting-sigkill start-post stop-sigabrt unmounting-sigterm

The odd thing: not all states from the service list are in the completion. These are missing from the list-unit-files:

generated
static
transient

In the past, most services were System V based, where you can use service --status-all. Contrary to the documentation (which indicates “The –status-all option displays the status of all loaded service units.”), it lists all services.

On OpenSuSE though, it now lists both System V based and systemd based services in one go. Since usually there are no more System V services (virtually all have been migrated to systemd a few years ago), the netto result is systemd services.

Based on [WayBack] init.d – Command to list services that start on startup? – Ask Ubuntu

–jeroen

Posted in *nix, *nix-tools, Linux, openSuSE, Power User, SuSE Linux, Tumbleweed | Leave a Comment »

Bash Notes for Professionals book

Posted by jpluimers on 2020/05/12

For my reading list: Bash Notes for Professionals book

Download: [WayBack]  BashNotesForProfessionals.pdf

Via: [WayBack] Bash Notes for Professionals – a book compiled from Stack Overflow Documentation released under Creative Commons BY-SA  – ThisIsWhyICode – Google+

–jeroen

Posted in *nix, *nix-tools, bash, bash, Development, Power User, Scripting, Software Development | Leave a Comment »

OpenSuSE: keeping an ssh connection alive (convenient for keeping port forwardings up)

Posted by jpluimers on 2020/05/11

Below the steps for ensuring port forwardings are up from an OpenSuSE system to an ssh server using autossh on the client system.

Autossh

Many have written about the benefits of autossh, so I can’t do better than that. A good abbreviated quote is from [WayBack] Autossh for persistent database connectivity – Compose Articles:

Autossh wraps SSH in an application which was designed to monitor the state of the connection. It will also restart SSH if it exits. The idea of the monitoring is that If it sees the packets aren’t going through, it would also restart SSH. …

the developers of OpenSSH added some options – ServerAliveInterval and ServerAliveCountMax – which activate built in connection checking in OpenSSH. Together the options set checking at a set interval and exiting SSH if the count maximum is exceeded. And when SSH exits, autossh will restart it so it serves as much improved replacement as there’s no extra ports needed.

Summary

The scenario is that a client user named autoSshClientUser automatically logs on to a server as user autosshServerUser using autossh from the client system.

The sequence is to first test this manually from the client system using a regular ssh command, then manually with the autossh command from the client system, then automate the starting (and keep alive) of the autossh instance from the client system.

Start configuring the server side first:

  1. Create a user specific for logon (below it is autosshServerUser).
  2. Limit the user to only allow only port forwarding: [WayBacksecurity – How to create a restricted SSH user for port forwarding? – Ask Ubuntu

Then finish confiruging the client side:

  1. Install autossh: zypper install autossh
  2. Ensure autoSshClientUser has an ssh key that does not require a password
  3. Transfer the public key to autosshServerUser on the remote system
  4. Test with an autossh command that suits your situation best
  5. Ensure autoSshClientUser runs a job at or shortly after system boot (after the network is up) that will start autossh with the correct parameters

If the autoSshClientUser is root, then you could use a service to start autossh, but be sure that service depends on a functioning network connection.

If the autoSshClientUser is not root, then usually a user based cron job works best.

Naming idea:

  • Assume the client system is Train and the server is Station
  • The server user could be autosshTrainAtStation
  • The client user could be autosshTrainToStation

Server side

  1. [Archive.is] Installing on other OSes (Debian / Ubuntu;  Debian / Ubuntu; CentOS / Fedora / RHEL; ArchLinux; FreeBSD; OSX)
  2. As root, add he user using [Archive.is]useradd:

    # useradd --create-home --shell /bin/false autosshServerUser

  3. As root use su to become autosshServerUser, then create an ssh key without a password (you need to specify the logon shell) using [WayBackssh-keygen.
    This generates bot a secure rsa and

    # su --shell /bin/bash autosshServerUser
    > cd ~
    > whoami
    autosshServerUser
    > rm -f ~/.ssh/id_rsa ~/.ssh/id_rsa.pub
    > ssh-keygen -t rsa -b 4096 -o -a 100 -f ~/.ssh/id_rsa -N ''
    Generating public/private rsa key pair.
    Your identification has been saved in /home/autosshServerUser/.ssh/id_rsa.
    Your public key has been saved in /home/autosshServerUser/.ssh/id_rsa.pub.
    The key fingerprint is:
    SHA256:... autossh24@linux
    The key's randomart image is:
    +---[RSA 2048]----+
    ...
    +----[SHA256]-----+
    > rm -f ~/.ssh/id_ed25519 ~/.ssh/id_ed25519.pub
    > ssh-keygen -t ed25519 -o -a 100 -f ~/.ssh/id_ed25519 -N ''
    Generating public/private ed25519 key pair.
    Your identification has been saved in /home/autossh24/.ssh/id_ed25519.
    Your public key has been saved in /home/autossh24/.ssh/id_ed25519.pub.
    The key fingerprint is:
    SHA256:... autossh24@linux
    The key's randomart image is:
    +--[ED25519 256]--+
    ...
    +----[SHA256]-----+
    

Client side

I need to check the below links on killing autossh (including the underlying ssh based connection), as you need to use the kill or pkill parameters signals -3 (SIGQUIT), not -9 (SIGKILL) as explained in [WayBack] ssh – How to stop/kill an autossh tunnel? – Super User (thanks mariusmatutiae and dviljoen).

Monitoring the state of the ssh connection needs some parameters (like ClientAliveInterval and ClientAliveCountMax). A good start on that is [WayBack] networking – autossh does not kill ssh when link down – Server Fault.

Setting up a service so root automatically logs on a remote system:

With non-root, it might actually be possible to do this  as a service too given there is a user= parameter in service files:

Though as non-root, most people seem to use cron [WayBack] ssh – Problems with Autossh: running from cron vs terminal – Super User

Please do not use /etc/init.d/after.local as mentioned often (for instance in [WayBack] TUMBLEWEED run a script a boot): this mechanism has been deprecated and won’t work on more recent systems (like 2012 and younger: [WayBack] openSUSE Forums – systemd and using the after.local script in openSUSE 12.1). The same holds for /etc/init.d/boot.local: don’t use, even though many people indicate it works, for instance [WayBack] Run a command at boot.

An interesting approach is at [WayBack] Autossh Startup Script for Multiple Tunnels | Surnia Ulula, though I will stick with what’s below.

Read:

Downloads:

References

Most of the above comes from these links:

–jeroen

Continuation of:

Read the rest of this entry »

Posted in *nix, Communications Development, Development, Internet protocol suite, Linux, Power User, SSH, TCP | Leave a Comment »

x11vnc encryption: ssl works better with the realVNC client than ssh tunneling

Posted by jpluimers on 2020/05/08

“Unencrypted connection” “This connection is unencrypted. Would you like to continue?”

When you run realVNC to an x11vnc server, even over an ssh tunneled connection, it will produce errors like the screenshots on the right (from an Android device) and below (from a Mac).

Before I had the realVNC client on the Mac, the Android message totally put me on the wrong foot. I tried searching x11vnc encryption, of which almost all results – especially the Google Search abstracts – will talk about ssh tunneling. So tried to setup the client to use the SSH endpoint, but it refused because it doesn’t talk SSH.

So then I installed a desktop realVNC client (in this case on my Mac) and got this message:

“Unencrypted connection” “The connection to this VNC Server will not be encrypted”

Then it occurred to me that maybe the VNC server itself could do encryption as well and would not need an SSH tunnel after all. And it does even in the first hit:

Read the rest of this entry »

Posted in *nix, *nix-tools, Power User, Screen sharing, VNC/Virtual_Network_Computing, X11 | Leave a Comment »

MultiBootUSB

Posted by jpluimers on 2020/05/07

Cool tool:

MultiBootUSB is a cross platform software written in python which allows you to install multiple live linux on a USB disk non destructively and option to uninstall distros. Try out the world’s first true cross platform multi boot live usb creator for free. Download Now!

Information and downloads on [WayBackMultiBootUSB.

There are actually a few repositories within [WayBack] mbusb (multibootusb) · GitHub of which one has a ruby implementation as well.

A more elaborate article is on [WayBack] How to Install Multiple Linux Distributions on One USB, but the site should get you going just fine.

Via: [WayBack] Multiple Linux distributions on one UBS stick. I just tried it with: * CloneZilla * Lubuntu * LiteLinux The tool they describe – MultiBootUSB – comes w… – Thomas Mueller (dummzeuch) – Google+

–jeroen

Posted in *nix, *nix-tools, Development, Hardware, Linux, Power User, Python, Software Development, USB | Leave a Comment »