Simple SSH login email notify

Wanted to track remote SSH port forward login and the following is a great solution

$ cat /etc/profile.d/
if [ -n "$SSH_CLIENT" ]; then
TEXT="$(date): ssh login to ${USER}@$(hostnamectl –static)"
TEXT="$TEXT from $(echo $SSH_CLIENT|awk '{print $1}')"
echo $TEXT|mail -s "ssh login"

view raw
hosted with ❤ by GitHub


SSH proxy via SOCKS with Firefox

Open dynamic port forward with SSH
ssh -D 8080 REMOTE_HOST

Then via Firefox visit about:preferences#general

Under Network Settings -> Manual proxy configuration set ONLY SOCKS host IP/DNS name and port.

firefox proxy settings

To test proxying go to to check your public IP if it changed

Passwordless ssh not working

I was getting the following with ssh -v user@remote_host

debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/mike/.ssh/id_rsa
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,password
debug2: we did not send a packet, disable method
debug1: Next authentication method: password

The solution idea came from to fix .ssh dir permissions and .ssh/authorized_keys

Later during investigation after login with password and debug turned on SSH complained with:

debug1: Remote: Ignored authorized keys: bad ownership or modes for file /home/REMOTE_HOST_USER/.ssh/authorized_keys

Open new Chrome window from command line via SSH

I switch between computers and sometimes when I’m switching I need to push an URL/prepare a window so found a solution with the following command:

mike@remotehost $ export DISPLAY=:0; nohup chromium --new-window

UPDATE 2017-06-18

DISPLAY=:0 nohup chromium URL_TO_OPEN_ON_REMOTE_BROWSER > /dev/null &

view raw
hosted with ❤ by GitHub

SSHFS mounting without password with SSH keys

First we need to generate public and private keys on our host.
When prompted for passphrase just hit enter to go without it

nevillegroup@shell:~$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/nevillegroup/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/nevillegroup/.ssh/id_rsa.
Your public key has been saved in /home/nevillegroup/.ssh/

We need to add our public key into authorized_keys file and upload it to the remote host into the .ssh directory.

nevillegroup@shell:~$ cat .ssh/ > authorized_keys

Now we can create a bash script for mounting the remote directory



# create dir if it doesn't exists
if [ ! -d "$MOUNT_DIR" ]; then
umount $MOUNT_DIR &> /dev/null
mkdir $MOUNT_DIR

# to check your uid use command `id`
sshfs -C -o uid=$USERID,ssh_command='ssh -i ~/.ssh/id_rsa',workaround=rename $USER@$HOST:. $MOUNT_DIR

Add executable flag to the file and you ready to mount with the script

nevillegroup@shell:~$ chmod +x bin/sshfs_examplecom
nevillegroup@shell:~$ ./bin/sshfs_examplecom
nevillegroup@shell:~$ ls /home/example/examplecom_sshfs
dev/ git/ logs/ sub/ web/

Backup with RSYNC and SSH authorized key

Finally I wrote my rsync backup script v. 0.1


# ~/bin/
# Some help from
# Thanks

# man rsync
# -v be verbose
# -h human readable bytes
# -a, --archive archive mode; same as -rlptgoD (no -H) -H hard-links
# -z compress data during transfer
# --progress show file transfer progress
# -e remote shell to use

time rsync -vhaz --progress -e "ssh -i .ssh/id_rsa" \
--exclude ".DS_Store" \
--exclude "._.DS_Store" \
--exclude "Thumbs.db" \
--exclude "thumbs.db" \
--exclude "desktop.ini" \
--exclude ".svn" \
--exclude ".git" \
/Volumes/data/Dropbox/ \
# >> backup.log # log output
# &> /dev/null

# needs FTP password
# time rsync -vhaz --progress -e ssh \
# --exclude ".DS_Store" \
# --exclude "._.DS_Store" \
# --exclude "Thumbs.db" \
# --exclude "thumbs.db" \
# --exclude "desktop.ini" \
# --exclude ".svn" \
# --exclude ".git" \
# /Volumes/data/Dropbox/ \
# # >> backup.log # log output
# # &> /dev/null