Google provides a very useful tool especially for those I’m calling “cloud workers”: the Cloud Shell. This gives you access to a linux-shell for just whatever you do usually in a linux shell - directly from your browser.
From time to time I use the cloud shell as a starting-point to connect via ssh to other systems. Recently I noticed that tcp-port-forwarding via the outgoing ssh-connections doesn’t work out of the box: When trying to establish a port-forwarding (ssh user@targethost -L 8080:127.0.0.1:8080) the following error occurs:
bind: Cannot assign requested address
… and the port-forwarding doesn’t work.
The reason for this is simple - as always as you know it: The ssh-client tries to bind to the local ipv6-port. This is not supported in the cloud shell and therefore fails.
And suddenly it happened again: I’ve typed sensitive information (at this time it was a password) into the command line.
And the shell kindly saved the typed commandline into its history. This way it wants to help me if I need the same command line later again. Great!
But what happens, if the system I’m working on isn’t under my full control? Imagine I’ve worked on a customer system …
Or what if someone later looks over my shoulder while I’m searching through my history?
The sensitive line needs to be removed!
What’s the best way for doing this?
How do we protect ourselves from this happening again later?
Generally speaking: You have two options to remove command lines from the bash history: first, by using the history command and second, by editing ~/.bash_history directly.