Difference between revisions of "Linux Remote Shell Notes"

From Free Knowledge Base- The DUCK Project: information for everyone
Jump to: navigation, search
m
Line 24: Line 24:
 
now press ENTER to every field
 
now press ENTER to every field
 
  ssh-copy-id nicolep@192.168.100.10
 
  ssh-copy-id nicolep@192.168.100.10
 +
 +
== shells that don't die when connection is lost ==
 +
The two most common solutions are "screen" and "tmux."  Screen has been around longer, tmux has some additional capabilities, and both will keep your terminal session alive even if your connection is lost. 
 +
=== Screen - Virtual Terminals From Console ===
 +
Multiple virtual terminals from one terminal (like a remote shell), with the ability to detach processes and leave them running even when you disconnect. 
 +
* [[Screen - Virtual Terminals From Console]]
 +
=== tmux, the shell that doesn't die ===
 +
{{:Tmux_terminal_multiplexer}}

Revision as of 11:55, 5 March 2018

auto login ssh

The OpenSSH ssh utility doesn't accept a password on the command line or on its standard input. The nanny mentality whereby the developer protects us from ourselves by preventing us from doing something that compromises security, even though the result may be worse.

OPTIONS FOR SSH AUTOMATED

  1. Use an SSH key for authentication, instead of a password.
  2. Use sshpass, expect, or a similar tool to automate responding to the password prompt.
  3. Use the SSH_ASKPASS feature to get ssh to get the password by running another program.
  4. Use the insecure host-based authentication, sometimes common on private networks.
  5. Use a custom or modified ssh client adapted from source code, or one that allows for stored password.

sshpass

Install the sshpass utility so that you can automate ssh login including password.

apt install sshpass

Now you can automate the login process

sshpass -p "mysecretpass" ssh -o StrictHostKeyChecking=no nicolep@192.168.100.10

Custom port example:

sshpass -p "mysecretpass" ssh -o StrictHostKeyChecking=no nicolep@192.168.100.10:9600

public key authentication

In the source host run this only once:

ssh-keygen -t rsa 

now press ENTER to every field

ssh-copy-id nicolep@192.168.100.10

shells that don't die when connection is lost

The two most common solutions are "screen" and "tmux." Screen has been around longer, tmux has some additional capabilities, and both will keep your terminal session alive even if your connection is lost.

Screen - Virtual Terminals From Console

Multiple virtual terminals from one terminal (like a remote shell), with the ability to detach processes and leave them running even when you disconnect.

tmux, the shell that doesn't die

tmux is a terminal multiplexer. It lets you switch easily between several programs in one terminal, detach them (they keep running in the background) and reattach them to a different terminal.

tmux may be detached from a screen and continue running in the background, then later reattached.

  1. ssh into the remote machine
  2. start tmux by typing tmux into the shell
  3. start the process you want inside the started tmux session
  4. leave/detach the tmux session by typing Ctrl+b and then d


The tmux and GNU screen utilities have many similarities. tmux is considered more modern.

Each session is persistent and will survive accidental disconnection (such as ssh(1) connection timeout) or intentional detaching (with the ‘C-b d’ key strokes). tmux may be reattached using:

tmux attach

Example tmux commands include:

refresh-client -t/dev/ttyp2 

rename-session -tfirst newname 

set-window-option -t:0 monitor-activity on 

new-window ; split-window -d 

bind-key R source-file ~/.tmux.conf \; \ 
	display-message "source-file done"

Or from sh(1):

tmux kill-window -t :1 

tmux new-window \; split-window -d 

tmux new-session -d 'vi /etc/passwd' \; split-window -d \; attach