ssh helper
This commit is contained in:
57
ssh-to
Executable file
57
ssh-to
Executable file
@@ -0,0 +1,57 @@
|
||||
#!/bin/bash
|
||||
|
||||
function helpExit() {
|
||||
echo "SSH to Docker session."
|
||||
echo " arg: container name "
|
||||
echo " --help This help"
|
||||
exit
|
||||
}
|
||||
function rsaMissing() {
|
||||
echo "RSA keys missing. have you started a container here?"
|
||||
exit 1
|
||||
}
|
||||
function listContainers() {
|
||||
docker ps -a
|
||||
}
|
||||
function isRunning() {
|
||||
[[ $( docker inspect --format '{{ .State.Running }}' "$1" ) = true ]]
|
||||
}
|
||||
function containerRestart() {
|
||||
docker restart "$1"
|
||||
}
|
||||
for (( i=1; i<=$#; i++ )); do
|
||||
j=$(( $i + 1 ))
|
||||
[[ "${!i}" = "--help" ]] && helpExit
|
||||
[[ "${!i}" = "-h" ]] && helpExit
|
||||
done
|
||||
set -e
|
||||
[[ -f .id_rsa.pub ]] || rsaMissing
|
||||
[[ -f .id_rsa ]] || rsaMissing
|
||||
|
||||
[[ -z "$1" ]] && {
|
||||
listContainers
|
||||
echo "Pass container name / id"
|
||||
exit
|
||||
}
|
||||
cd $( dirname $( readlink -f $0 ) )
|
||||
|
||||
export USER=$( id -u -n )
|
||||
|
||||
nname=$1
|
||||
|
||||
isRunning $nname || containerRestart $nname
|
||||
while :; do
|
||||
sleep 3
|
||||
IP=$( docker inspect --format '{{ .NetworkSettings.IPAddress }}' $nname )
|
||||
[[ -z "$IP" ]] || break
|
||||
done
|
||||
echo $IP
|
||||
while :; do
|
||||
sleep 3
|
||||
ssh-keyscan $IP && break
|
||||
done
|
||||
|
||||
ssh -i .id_rsa -XY -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no $USER@$IP
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user