mirror of https://github.com/tLDP/LDP
70 lines
1.9 KiB
Bash
70 lines
1.9 KiB
Bash
#!/bin/bash
|
|
# remote.bash: Using ssh.
|
|
|
|
# This example by Michael Zick.
|
|
# Used with permission.
|
|
|
|
|
|
# Presumptions:
|
|
# ------------
|
|
# fd-2 isn't being captured ( '2>/dev/null' ).
|
|
# ssh/sshd presumes stderr ('2') will display to user.
|
|
#
|
|
# sshd is running on your machine.
|
|
# For any 'standard' distribution, it probably is,
|
|
#+ and without any funky ssh-keygen having been done.
|
|
|
|
# Try ssh to your machine from the command-line:
|
|
#
|
|
# $ ssh $HOSTNAME
|
|
# Without extra set-up you'll be asked for your password.
|
|
# enter password
|
|
# when done, $ exit
|
|
#
|
|
# Did that work? If so, you're ready for more fun.
|
|
|
|
# Try ssh to your machine as 'root':
|
|
#
|
|
# $ ssh -l root $HOSTNAME
|
|
# When asked for password, enter root's, not yours.
|
|
# Last login: Tue Aug 10 20:25:49 2004 from localhost.localdomain
|
|
# Enter 'exit' when done.
|
|
|
|
# The above gives you an interactive shell.
|
|
# It is possible for sshd to be set up in a 'single command' mode,
|
|
#+ but that is beyond the scope of this example.
|
|
# The only thing to note is that the following will work in
|
|
#+ 'single command' mode.
|
|
|
|
|
|
# A basic, write stdout (local) command.
|
|
|
|
ls -l
|
|
|
|
# Now the same basic command on a remote machine.
|
|
# Pass a different 'USERNAME' 'HOSTNAME' if desired:
|
|
USER=${USERNAME:-$(whoami)}
|
|
HOST=${HOSTNAME:-$(hostname)}
|
|
|
|
# Now excute the above command-line on the remote host,
|
|
#+ with all transmissions encrypted.
|
|
|
|
ssh -l ${USER} ${HOST} " ls -l "
|
|
|
|
# The expected result is a listing of your username's home
|
|
#+ directory on the remote machine.
|
|
# To see any difference, run this script from somewhere
|
|
#+ other than your home directory.
|
|
|
|
# In other words, the Bash command is passed as a quoted line
|
|
#+ to the remote shell, which executes it on the remote machine.
|
|
# In this case, sshd does ' bash -c "ls -l" ' on your behalf.
|
|
|
|
# For information on topics such as not having to enter a
|
|
#+ password/passphrase for every command-line, see
|
|
#+ man ssh
|
|
#+ man ssh-keygen
|
|
#+ man sshd_config.
|
|
|
|
exit 0
|